将功能从父母传递给孩子

时间:2016-01-02 18:19:44

标签: javascript reactjs parent-child

我在javascript中有点弱。 我鼓励自己从this回答在REACT中将一个函数从父母传给孩子,我有点困难。

有人可以帮我纠正我的代码吗? 谢谢!

var List = React.createClass({
  deleting: function(test){
    console.log(test);
  },
  render: function() {      
    var all = this.props.activities;
    var test = List.deleting;
    var list = all.map(function(a){
      return (<ListItem act={a} del={test}>);
    });

    return (
      <ul> {list}
      </ul>
    );
  }
});

var ListItem = React.createClass({
  deleting: function(e){
    this.props.del(e.target.parentNode.firstChild.innerHTML);
  },
  render: function(){
    return (
      <li key={this.props.act}>{this.props.act} 
        <div onClick={this.deleting}>X</div>
      </li> 
    );
  }
});

我得到的错误:

enter image description here

1 个答案:

答案 0 :(得分:4)

您需要传递对作为.deleting对象一部分的方法List的引用,现在您正在尝试传递test = List.deleting; undefined。要this .map引用List,您应该自己为this设置.map - 这样做就是通过(在我们的例子中)应为this,因为渲染方法中的this引用List第二个参数.map,并传递给del=属性引用方法this.deleting

同时为keyReact all tags must be closed设置ListItem属性 - 因此添加/>现在您收到错误,因为您尚未关闭标记{{ 1 {} )在ListItem代码

的末尾
ListItem

Example