Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从ReactJS中的子对象调用父类方法_Javascript_Reactjs - Fatal编程技术网

Javascript 从ReactJS中的子对象调用父类方法

Javascript 从ReactJS中的子对象调用父类方法,javascript,reactjs,Javascript,Reactjs,我的英语有问题 我想从子类调用this.props.onAction()方法,但我有一个错误: 未捕获类型错误:this.props.onShotImageClick不是函数 我想在父类中动态生成按钮时调用此方法 var btns = ['aaa', 'bbb', 'ccc'] var Child = React.createClass({ render: function () { return <button onClick={this.handleClick} typ

我的英语有问题 我想从子类调用this.props.onAction()方法,但我有一个错误:

未捕获类型错误: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);
var btns=['aaa','bbb','ccc']
var Child=React.createClass({
渲染:函数(){
返回{this.props.text};
},
handleClick:函数(){
这个.props.onAction(“超级文本”);
}, 
});
var Parent=React.createClass({
渲染:函数(){
var按钮=btn.map(功能(btn){
返回;
});
返回{buttons}

; }, 超作用:函数(文本){ 警报('子按钮显示:'+文本); } }); React.renderComponent(,document.body);
如果我直接在“return”中调用它,它会工作。。


谢谢。

此设置为
.map
回调,因为在您的情况下
指的是
窗口
而不是您的
父对象
对象

 var buttons = btns.map(function(btn) {
     return <Child onAction={this.superAction} text={btn} />;
 }.bind(this));
var按钮=btns.map(功能(btn){
返回;
}.约束(这个);

设置为
.map
回调,因为在您的情况下
指的是
窗口
而不是您的
父对象
对象

 var buttons = btns.map(function(btn) {
     return <Child onAction={this.superAction} text={btn} />;
 }.bind(this));
var按钮=btns.map(功能(btn){
返回;
}.约束(这个);