如何使用prevState更新反应数组?
我想在数组中插入一条记录。
我发现了一条不应用于推动州保全措施的信息。
this.state = {
dados : {
doc: '',
infe: '',
bene: '',
inco: [],
cino: [],
}
}
this.setState(prevState => ({ dados:{
inco: [...prevState.dados.inco, URL.createObjectURL(result)]
}}))
this.setState(prevState => ({ dados:{
cino: [...prevState.dados.cino, URL.createObjectURL(result)]
}}))
答案 0 :(得分:1)
尝试将setstate()函数调用绑定到一个,因为dados状态键可能会丢失其他属性,因此它无法在第二个setstate()中找到cino对象。 这里,dados状态对象在第一个setState()函数cal l之后只得到inco属性,因此现在在代码下面我们确保维护状态对象的一致性
以下是示例代码
this.state = {
dados : {
doc: '',
infe: '',
bene: '',
inco: [],
cino: [],
}
}
this.setState(prevState => (
{
dados:{
...prevState.dados,
inco: [...prevState.dados.inco,
URL.createObjectURL(result)
],
cino: [...prevState.dados.cino,
URL.createObjectURL(result)
]
}}))
答案 1 :(得分:0)
var exp = Object.assign([],data.questions);
exp[index] = {
name:name,
question:question,
[event.target.name]:event.target.value
}
setData({
...data,
questions:exp
})