我正在尝试在对象的对象中保存一些数据,但它不工作并抛出错误。
此 setState 不起作用。
我想在 title 和 otherData 中保存一些数据。
this.state = {
data:{
title:" ",
otherData:" "
},
size: "Medium",
posterDiv: "700px",
url: ArticlePoster,
file: " ",
base64: " "
}
this.setSate({data.title:wantToSaveThisData})
但是这个 setState 不起作用。
谁能解释为什么我的 setState 不起作用
答案 0 :(得分:3)
试试
this.setState({
data: {
...this.state.data,
title: wantToSaveThisData
}
})
...this.state.data
是 spread 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);