0
私はonClick
イベントをListItemに設定しました。次に、クリックされたリスト項目のIDと名前の値を渡すために呼び出されるメソッドに対して.bind
が呼び出されます。onClickイベントバインドでパラメータを渡す方法は?
次のSO questionは、バインドを使用することを推奨していますが、ListItemにonCLickイベントを追加すると、リストバインドが中断されるようです。
クリックイベントを追加する前に、asset.name
へのリストスパンバインディングが正常に動作していて、リストに値が設定されています。
また、パラメータを指定しないでonClick={this._onAssetSelected()
を試しても、クリックイベントは機能しません。
質問:
がどのようにJSXでonClickイベントバインドでパラメータを渡すことができますか?
リストの定義:クリックイベントから呼び出さ
<List selectable={true} selected={0}>
{
this.state.data.map(function (asset) {
return (
<ListItem justify="between" onClick={this._onAssetSelected.bind(this, asset.name, asset.id)} >
<span>{asset.name}</span>
</ListItem>
);
})
}
</List>
方法:
_onAssetSelected(assetName, assetID) {
console.log(assetName);
console.log(assetID);
}
通常のクロージャを使用する方法があります。また、特定のプロパティではなく、完全なアセットオブジェクトを渡します。 – gor181
私は上記のように無名関数を定義しました。開発ツールのコンソールは 'Uncaught TypeError:undefinedの_onAssetSelected 'プロパティを読み取れません。このメソッドがクラスで定義されていることがわかります。それとも私はここに何か他のものを逃している? –
レンダリングで 'return'の前に' var _this = this'を追加し、マップの中で '_this._onAssetSelected'を使うべきです。 –