[英]How setState to nested array in react
If I have a state: 如果我有状态:
this.state = {
data: [
{
match: false,
value: "Some"
}
],
};
In handler function I can add new value like that? 在处理函数中,我可以像这样添加新值吗? It's correct?
这是正确的?
inputKeydown = (e) => {
const val = e.target.value;
if (e.key === 'Enter' && val) {
this.setState({ data: [...this.state.data, {match: false, value:val}]});
}
}
With this way I will get my state like that? 这样,我将获得这样的状态?
this.state = {
data: [
{
match: false,
value: "Some"
},
{
match: false,
value: "input value"
},
],
};
Another way of adding values to existing state array is, 将值添加到现有状态数组的另一种方法是,
this.setState(prevState => ({
...prevState,
data: prevState.data.concat({match: false, value:val})
}),()=>console.log(this.state.data)
)
You can also use push
method... 您也可以使用
push
方法...
{
let dataArray = this.state.data;
dataArray.push({match: false,value: e.target.value});
this.setState ({
data:data array
});
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.