我在ReactJS中遇到了问题 我想从Child类调用 this.props.onAction()方法,但我有一个错误:
未捕获的TypeError:this.props.onShotImageClick不是函数
我希望在父类中动态生成按钮时调用此方法。
var btns = ['aaa', 'bbb', 'ccc']
var Child = React.createClass({
render: function () {
return <button onClick={this.handleClick} type="button"> {this.props.text} </button>;
},
handleClick: function () {
this.props.onAction("super text");
},
});
var Parent = React.createClass({
render: function () {
var buttons = btns.map(function(btn){
return <Child onAction={this.superAction} text={btn} />;
});
return <p>{buttons}</p>;
},
superAction: function (text) {
alert('The Child button say: ' + text);
}
});
React.renderComponent(<Parent />, document.body);
如果我直接在&#34中调用它,请返回&#34;有用.. http://jsfiddle.net/f2ty4jkm/
感谢。
答案 0 :(得分:0)
将this
设置为.map
回调,因为在您的情况下this
引用window
而不是Parent
对象
var buttons = btns.map(function(btn) {
return <Child onAction={this.superAction} text={btn} />;
}.bind(this));