我刚刚开始与ReactJ一起工作,我无法弄清楚如何在地图功能中使OnClick事件在映射功能中起作用,从而呈现出一些类似的元素。当我不使用子元素中的onclick = {this.somemethodname}时,一切都很好,所以我猜想" this"关键字不再是指父母。
这是我的代码,它呈现一个简单的menubar:
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>
);
}
我该如何使它起作用?我读过几个类似的问题*,但是他们的解决方案对我不起作用,或者我无法使它们起作用。
*:在内部.map中进行反应,然后更改另一个同胞组件中的数据"这个"在地图函数reactj中是未定义的将道具传递给react.js
您的代码正在工作。我已经在这个小提琴上检查了它。我只是硬编码了一个数组而不是道具。
var Hello = React.createClass({
doSomething: function () {
console.log("aaaaaaaah");
},
render: function() {
var data=[{id:1,name:'name 1'},{id:2,name:'name 2'}]
const suppliers = data.map(function(supplier){
return (
<option onClick={this.doSomething} key={supplier.id}>{supplier.name}</option>
);
}, this);
return(
<div>{suppliers}</div>
);
}
})
ReactDOM.render(
<Hello />,
document.getElementById('container')
);
https://jsfiddle.net/evwelre5/