如果我有状态:
this.state = {
data: [
{
match: false,
value: "Some"
}
],
};
在处理程序函数中,我可以添加新值吗?这是正确的?
inputKeydown = (e) => {
const val = e.target.value;
if (e.key === 'Enter' && val) {
this.setState({ data: [...this.state.data, {match: false, value:val}]});
}
}
通过这种方式,我将得到这样的状态?
this.state = {
data: [
{
match: false,
value: "Some"
},
{
match: false,
value: "input value"
},
],
};
答案 0 :(得分:0)
将值添加到现有状态数组的另一种方法是
this.setState(prevState => ({
...prevState,
data: prevState.data.concat({match: false, value:val})
}),()=>console.log(this.state.data)
)
答案 1 :(得分:0)
您还可以使用push
方法...
{
let dataArray = this.state.data;
dataArray.push({match: false,value: e.target.value});
this.setState ({
data:data array
});
}