ReactJS onClick 映射函数中的事件,然后调用父函数



我刚刚开始与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/

相关内容

最新更新