Reactjs 如何使用prevState更新react中的数组?

Reactjs 如何使用prevState更新react中的数组?,reactjs,Reactjs,如何使用prevState更新react中的数组 我想在数组中插入一条记录 我发现了一个不应该用来推动国家保护措施的信息 this.state = { dados : { doc: '', infe: '', bene: '', inco: [], cino: [], } }

如何使用prevState更新react中的数组

我想在数组中插入一条记录

我发现了一个不应该用来推动国家保护措施的信息

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
   })