setState 不适用于对象的对象

时间:2020-12-31 07:07:30

标签: javascript reactjs

我正在尝试在对象的对象中保存一些数据,但它不工作并抛出错误。

此 setState 不起作用。

我想在 title 和 otherData 中保存一些数据。

 this.state = {
            data:{
                   title:" ",
                   otherData:" "
                 },
            size: "Medium",
            posterDiv: "700px",
            url: ArticlePoster,
            file: " ",
            base64: " "
        }
this.setSate({data.title:wantToSaveThisData})

但是这个 setState 不起作用。

谁能解释为什么我的 setState 不起作用

3 个答案:

答案 0 :(得分:3)

试试

this.setState({
  data: {
    ...this.state.data,
    title: wantToSaveThisData
  }
})

...this.state.dataspread syntax,在新状态下复制 this.state.data 的所有道具。 title: wantToSaveData 将覆盖之前的 this.state.data.title

答案 1 :(得分:2)

试试这个

this.setState({...this.state.data, title: wantToSaveThisData})

this.setState({...this.state, data:{ title: wantToSaveThisData}

答案 2 :(得分:0)

你需要在没有状态变化的情况下正确地做到这一点:

  this.state = {
            data:{
                   title:" ",
                   otherData:" "
                 },
            size: "Medium",
            posterDiv: "700px",
            url: ArticlePoster,
            file: " ",
            base64: " "
        }
 const newData = {title:"New Title",otherData:"Other Data"}
 
 this.setState({...this.state, data:newData);