Reactjs 如何使用prevState更新react中的数组?
如何使用prevState更新react中的数组 我想在数组中插入一条记录 我发现了一个不应该用来推动国家保护措施的信息Reactjs 如何使用prevState更新react中的数组?,reactjs,Reactjs,如何使用prevState更新react中的数组 我想在数组中插入一条记录 我发现了一个不应该用来推动国家保护措施的信息 this.state = { dados : { doc: '', infe: '', bene: '', inco: [], cino: [], } }
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)]
}}))
尝试将setstate()函数调用合并为一个,因为dados state键可能会丢失其他属性,因此它无法在第二个setstate()中找到cino对象在这里,dados状态对象在第一个setState()函数call之后只获得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)
]
}}))
您收到的错误消息是什么?无法将未定义或null转换为适当的Objects结果变量?另外,我认为dados状态变量在第一个setstate函数中被覆盖了。非常感谢你!
var exp = Object.assign([],data.questions);
exp[index] = {
name:name,
question:question,
[event.target.name]:event.target.value
}
setData({
...data,
questions:exp
})