【发布时间】:2017-04-13 16:23:47
【问题描述】:
我正在尝试设置动态生成的输入的状态。我要设置新状态的初始 tasks 对象如下所示:
渲染方法:
render(){
return(
<div>
<main className="content">
<form onSubmit={this.onSubmit}>
<div>
{Object.keys(this.state.dataGoal).map( (key, index) => {
return <div key={key}>
<label>{this.state.dataGoal[key]}</label>
<div className="input-wrap">
<input
type="text"
name={`${key}-task-${index}`}
value={this.state.tasks[key]}
onChange={this.handleInputChange} />
</div>
</div>;
})}
</div>
<div className="input-wrap">
<input
className="primary-btn"
type="submit"
value="Set my goal!"
onClick={this.formReset} />
</div>
</form>
</main>
</div>
);
}
最后是 handleInputChanged 函数:
handleInputChange = (e) => {
const value = e.target.value;
const name = e.target.name;
this.setState({
tasks: Object.assign({}, this.state.tasks, {[name]: value})
});
}
我想在其中一个输入更改时设置对象的新状态。期望的结果是获取输入值并将其设置为 name 键作为 tasks 对象中的值。
我还想问一下输入名称是否必须是唯一的。
感谢您的帮助, 雅库布
【问题讨论】:
标签: javascript reactjs object