1
我正在嘗試編寫一個門戶網站列表頁面,這是一個門戶網站表格,每個表格行都是一個到門戶網站的鏈接。現在我必須對此點擊進行一些自定義操作。我的代碼看起來喜歡 -爲ReactRouter鏈接創建自定義onClick處理程序時出錯
var React = require('react');
var Link = require('react-router').Link;
var PortalStore = require('../../stores/portal-store');
var PortalLandingPage = React.createClass({
\t getInitialState: function() {
return PortalStore.getPortalList();
},
updateAuthorizationCookie: function (portalIdHash) {
PortalStore.setPortalIdHash(portalIdHash);
PortalStore.generateAuthToken();
this.transitionTo('portalHome', {portalIdHash: portalIdHash});
},
render: function() {
var createPortalRow = function (portal) {
return (
<tr key={portal.portalId}>
<td>
<Link to='portalHome'
params={{
portalIdHash: portal.portalIdHash,
contentId: portal.portalId
}}
onClick={this.updateAuthorizationCookie(portal.portalIdHash)}
>{portal.portalName}</Link>
<b></b>
<hr align="left" width="100%"></hr>
</td>
</tr>
);
};
\t \t return (
\t \t \t <table className="table">
\t \t \t \t <thead>
\t \t \t \t <tr><th>
\t \t \t \t \t Name
\t \t \t \t \t <b></b>
\t \t \t \t \t <hr align="left" width="100%"></hr>
\t \t \t \t </th></tr>
\t \t \t \t </thead>
\t \t \t \t <tbody>
\t \t \t \t {this.state.portalList.map(createPortalRow, this)}
\t \t \t \t </tbody>
\t \t \t </table>
\t \t </div>);
}
}
module.exports = PortalLandingPage;
現在的問題是,當上述呈現組件的方法被調用,同時調用並評估onclick處理每一行。相反,我的要求是,只有當用戶點擊鏈接時纔會調用onClick處理程序。我也嘗試過,刪除處理程序周圍的括號,但它給編譯時錯誤。
<Link to='portalHome'
params={{
portalIdHash: portal.portalIdHash,
contentId: portal.portalId
}}
onClick=this.updateAuthorizationCookie(portal.portalIdHash)
>{portal.portalName}</Link>
請建議什麼是錯我的代碼。