ReactJSを使い始めたばかりで、マップ関数内でonClickイベントをどのように動作させることができないのか分かりません。 子要素でonClick = {this.someMethodName}を使用していないときは、すべて正常に動作しているため、 'this'キーワードが親を参照していないと推測しています。マップ関数内のReactJS onClickイベントを呼び出して親関数を呼び出す
var SupplierBarComponent = React.createClass({
doSomething: function() {
console.log("aaaaaaaah");
},
render: function() {
const suppliers = this.props.data.map(function(supplier){
return (
<option onClick={this.doSomething} key={supplier.id}>{supplier.name}</option>
);
}, this);
return(
<div>{suppliers}</div>
);
}
どのように私はそれを動作させることができます:ここで
は、シンプルなメニューバーをレンダリング私のコード、ありますか? 私はいくつかの同様の質問*を読んだが、彼らの解決策は私のためには機能しなかった、または私はそれらを働かせることができなかった。
*: React onClick inside .map then change data in another sibling component "this" is undefined inside map function Reactjs Pass props to parent component in React.js
あなたはマップ機能でこれをCONSOLE.LOG場合は、コンポーネントオブジェクトを返すのですか? – finalfreq
はい、そうです。 console.log(this.doSomething)で呼び出すと、without()のように関数自体が表示されます。 3models.jsx:9(){ console.log( "aaaaaaaah"); } 私はかっこで呼び出すと、最初は 'undefined'を表示しますが、関数はまだ呼び出され、 'aaaah'が出力されます。 – handris
'this.doSomething.bind(this)'をする必要がありますか?この内部のあなたの使用に応じて何か?また、より多くの情報を含む合成イベントオブジェクトを取得する必要があります。 – Tracker1