我知道您可以将React中的状态和props从父组件传递到子组件,但是有任何相反的方法吗?
例如:
给定一些子组件:
var Child = React.createClass({
getInitialState: function(){
return {
data: ''
};
},
componentDidMount: function(){
this.setState({data: 'something'});
},
render: function() {
return (
<div>
...
</div>
);
}
});
并给出一些父组件:
var Parent = React.createClass({
render: function() {
return (
<div>
<Child />
...
</div>
);
}
});
我有什么办法可以从中给出Parent
状态数据的值Child
?
不。
但是,是的。但是真的不行。
您不能在React中将任何东西从孩子“传递”给父母。但是,可以使用两种解决方案来模拟这种传递。
1)将回调从父级传递给子级
var Parent = React.createClass({
getInitialState: function() {
return {
names: []
};
},
addName: function(name) {
this.setState({
names: this.state.names.push(name)
});
},
render: function() {
return (
<Child
addName={this.addName}
/>
);
}
});
var Child = React.createClass({
props: {
addName: React.PropTypes.func.isRequired
},
handleAddName: function(event) {
// This is a mock
event.preventDefault();
var name = event.target.value;
this.props.addName(name);
},
render: function() {
return (
...
onClick={this.handleAddName}
...
);
}
});
第二个选项是通过使用Flux样式的动作/存储系统(例如Reflux或Redux)来具有顶级状态。这些基本上执行与上述相同的操作,但是更加抽象,使在更大的应用程序上执行变得非常容易。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句