【发布时间】:2019-03-30 10:50:39
【问题描述】:
我正在尝试使用双重输入更新表单,每次用户单击“添加”按钮并使用他们的值改变状态时,我希望这 2 个输入被“连接”。如果我用图形显示我正在尝试做的事情会更容易理解:
[input] [second input] [remove button]
[input] [second input] [remove button]
[input] [second input] [remove button] ...
当我尝试只动态生成一个输入时,这要容易得多,目前我什至没有完整的代码,因为我不知道该怎么做,但我有一些部分,这里是:
状态:
stuff: {
item: [],
quantity: []
},
这是只动态添加一个输入字段的代码:
// i mapped stuff because before i only had one array and like this-> stuff: []
return this.state.stuff.map((element, index) =>
<div key={index}>
<input type="text" value={element||''} onChange={this.handleChange.bind(this, index)} />
<input type='button' value='remove' onClick={this.removeInput.bind(this, index)}/>
</div>
)
handleChange(index, event) {
let stuff = [...this.state.stuff];
stuff[index] = event.target.value;
this.setState({ stuff });
}
add(){
this.setState(previousState => ({ stuff: [...previousState.stuff,'']}))
}
removeInput(index){
let stuff = [...this.state.stuff];
stuff.splice(index,1);
this.setState({ stuff });
}
说实话,我只是在尝试每一个想法,在 add() 函数中,我无法完全了解如何将 '' 添加到填充数组使代码工作,如果有人解释这一点并为我提供我想做的解决方案我会很感激的。
【问题讨论】:
标签: javascript arrays reactjs state