【发布时间】:2016-10-28 23:31:23
【问题描述】:
我有两个具有父子关系的简单 reactjs 组件。子元素包含一个带有 onChange 事件的输入和一个回调到父元素的 setState。当我运行它时, setState 似乎在父组件中工作,但传递给子组件的道具似乎没有更新。有任何想法吗?这是一个代码sn-p:
var FooInput = React.createClass({
handleInputChange: function(e) {
this.props.onInputChange(e.target.name, e.target.value);
},
render: function() {
return (
<div>
<input name="foo" value={this.props.foo} onChange={this.handleInputChange} />
</div>
)
}
})
var FooApp = React.createClass({
getInitialState: function() {
return {
foo: 'bar',
};
},
handleInputChange: function(key, value) {
this.setState({key: value});
},
render: function() {
return (
<div>
<FooInput
foo={this.state.foo}
onInputChange={this.handleInputChange} />
</div>
);
}
});
在上面的例子中,尽管handleInputChange在FooApp父组件中被触发并且foo通过@传递到子组件中,FooInput子组件中的input值保持为“bar” 987654325@。为什么输入值没有变化以反映新的状态?
【问题讨论】:
标签: javascript reactjs