Reactjs 家长通知孩子

Reactjs 家长通知孩子,reactjs,Reactjs,我有一张单子,单子上有很多项目。列表上有一个巨大的保存按钮。当用户按下该按钮时,我希望所有的childrens save方法都被激活 通常,我会为这个或某些PubSub实现使用自定义事件,但我想知道:React.js是如何实现的?父级应该拥有状态并使用道具呈现子级。这只是一个例子,没有经过测试 家长: var Parent = React.createClass({ getInitialState: function(){ return {array: []} }, handleCha

我有一张单子,单子上有很多项目。列表上有一个巨大的保存按钮。当用户按下该按钮时,我希望所有的childrens save方法都被激活


通常,我会为这个或某些PubSub实现使用自定义事件,但我想知道:React.js是如何实现的?

父级应该拥有状态并使用道具呈现子级。这只是一个例子,没有经过测试

家长:

var Parent = React.createClass({
getInitialState: function(){
     return {array: []}
},
handleChange: function(key, value){
 // here will you get key and value from child input.
   this.setState({array[key]: value});
}, 
saveAll: function(){
     // this.state.array have all data, lets save it :)
},
render: function(){
     var self = this;
     var items = [];
     this.state.array.map(function(item, key){
           items.push(<Child handleChange={self.handleChange} index={key} value={item} />);
     });
     return (<div>{items} <button onClick={this.saveAll}>SaveAll</button> </div>
}
});
儿童:

var Child = React.createClass({
    onChange: function(event){
         this.props.handleChange(this.props.index, event.target.value);
    },
    render: function(){
          return (<li><input value={this.props.value} onChange={this.onChange} />)
    }
});

一个更好的方法,甚至忽略React,是让父级调用必要的业务逻辑,理想地将子级保存为一个组。UI组件不应负责保存。另外,在React中,您不能对子组件调用方法。我也想过类似的事情,但我需要访问几乎所有的子组件数据,即它们的状态。有什么模式吗?我对React.js比较陌生。为什么不让一个容器为每个孩子收集数据并提供给每个孩子?这样,您就集中了数据。每个孩子都有一个对数据的引用,但不会拥有它。理论上,我可以使用我的数据存储作为这样一个容器。但是,我仍然需要一些事件来告诉孩子们把他们的状态写进商店。除了按键,您还看到了什么其他可能性?完全同意前面的评论,如果您需要一个示例,请查看React教程中的回调作为道具部分: