好奇解决此问题的正确方法是:
var Hello = React.createClass({
getInitialState: function() {
return {total: 0, input1:0, input2:0};
},
render: function() {
return (
<div>{this.state.total}<br/>
<input type="text" value={this.state.input1} onChange={this.handleChange} />
<input type="text" value={this.state.input2} onChange={this.handleChange} />
</div>
);
},
handleChange: function(e){
this.setState({ ??? : e.target.value});
t = this.state.input1 + this.state.input2;
this.setState({total: t});
}
});
React.renderComponent(<Hello />, document.getElementById('content'));
显然,您可以创建单独的handleChange函数来处理每个不同的输入,但这不是很好。同样,您可以只为单个输入创建一个组件,但是我想看看是否有办法做到这一点。
您可以
input
通过创建一个单独的InputField
组件来管理单个孩子的价值来跟踪每个孩子的价值input
。例如,InputField
可能是:现在,
input
可以在该InputField
组件的单独实例内跟踪每个组件的值,而无需在父级状态下创建单独的值来监视每个子组件。