用键值修改 parent 个组件状态
Modify parent component state with key value
我在 React 中有一个 child 组件,我想通过调用一个函数并提供键和值来修改 parent 组件。理想情况下它会像这样
var FirstView = React.createClass({
handleStateChange: function(key, value) {
this.setState({
key: value
});
}.
render: function() {
return (
<div>
<SecondView onStateChange={this.handleStateChange} />
</div>
)
}
});
var SecondView = React.createClass({
handleClick: function() {
this.props.onStateChange('theParent', 'isNowChanged');
},
render: function() {
return (
<div onClick={this.handleClick}>Stack Overflow</div>
);
}
})
我不完全确定这是否是解决此问题的最佳方法,但我想像上面那样传递一个键和一个值。不幸的是,反应不想打球, parent 的状态似乎没有改变。有没有明智的方法来解决这个问题?
谢谢!
在 FirstView 的 handleStateChange 中,您有以下内容:
handleStateChange: function(key, value) {
this.setState({
key: value
});
}.
传递给 setState
的字典使用文字 key
而不是传递给 handleStateChange
函数的变量 key
。请尝试以下操作:
handleStateChange: function(key, value) {
newState = [];
newState[key] = value;
this.setState(newState);
},
我在 React 中有一个 child 组件,我想通过调用一个函数并提供键和值来修改 parent 组件。理想情况下它会像这样
var FirstView = React.createClass({
handleStateChange: function(key, value) {
this.setState({
key: value
});
}.
render: function() {
return (
<div>
<SecondView onStateChange={this.handleStateChange} />
</div>
)
}
});
var SecondView = React.createClass({
handleClick: function() {
this.props.onStateChange('theParent', 'isNowChanged');
},
render: function() {
return (
<div onClick={this.handleClick}>Stack Overflow</div>
);
}
})
我不完全确定这是否是解决此问题的最佳方法,但我想像上面那样传递一个键和一个值。不幸的是,反应不想打球, parent 的状态似乎没有改变。有没有明智的方法来解决这个问题?
谢谢!
在 FirstView 的 handleStateChange 中,您有以下内容:
handleStateChange: function(key, value) {
this.setState({
key: value
});
}.
传递给 setState
的字典使用文字 key
而不是传递给 handleStateChange
函数的变量 key
。请尝试以下操作:
handleStateChange: function(key, value) {
newState = [];
newState[key] = value;
this.setState(newState);
},