export default React.createClass({
displayName: 'Test',
onItemClick(item) {
console.log(item);
},
render() {
return <div onClick={() => this.onItemClick('apple')}>Fruit</div>
});
divをクリックすると、Uncaught TypeError: Cannot read property 'onItemClick' of undefined
が表示されます。 bind
でも試してみましたが、同じ結果が出ました。onClick「this」バインディング
その後編集:
実際のコードが異なっています。私は、div
オブジェクトを持つcircle
オブジェクト内にitems
の配列を配置しています。ループ外で、私がonItemClick()
関数を呼び出すとうまく動作しますが、ループの中で上記のエラーが発生します。
export default React.createClass({
displayName: 'Test',
onItemClick (item) {
console.log(item);
},
render() {
var circle = {
'one': { items: [] },
'two': { items: [] },
'three': { items: [] },
'four': { items: [] }
};
['one', 'two', 'three', 'four'].forEach(function (k, i) {
for (var j = 1; j <= 10; j++) {
var itemNo = (i * 10 + j);
circle[k].items.push(<div className={"item item-"+itemNo} onClick={() => this.onItemClick(itemNo)}>{itemNo}</div>);
}
});
return (
<div>{circle.one.items}</div>
)};
どうすればこの問題に対処できますか?コンポーネントへ
私にとってうまく動作します。 – robertklep
ご確認いただきありがとうございます。たぶんこれはウェブパックの問題ですか? – apopa
私はそれがwebpackの問題だとは思わないが、あなたのコンポーネントのトランスバイラコードが意味をなさないかどうか調べる価値があるかもしれない。あなたはそれを蒸散させるために何を使用していますか? – robertklep