Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在React中更新深层对象状态?_Javascript_Reactjs - Fatal编程技术网

Javascript 如何在React中更新深层对象状态?

Javascript 如何在React中更新深层对象状态?,javascript,reactjs,Javascript,Reactjs,我编写了如下代码。并调用updatePartlyState(),但状态现在已更新。 如何将deep对象、detail.age和detail.country更新为initialState const initialState={ id:“”, 名称:“”, 详情:{ 年龄:'', 国家:“, }, } 常量[状态,设置状态]=使用状态(初始状态); //不行 const updatePartlyState=()=>{ 设定状态({ 状态 详细信息:initialState.detail, }) }

我编写了如下代码。并调用
updatePartlyState()
,但状态现在已更新。 如何将deep对象、
detail.age
detail.country
更新为initialState

const initialState={
id:“”,
名称:“”,
详情:{
年龄:'',
国家:“,
},
}
常量[状态,设置状态]=使用状态(初始状态);
//不行
const updatePartlyState=()=>{
设定状态({
状态
详细信息:initialState.detail,
})
}

setState
可以通过一个函数传递到基于先前状态的状态。只需将其展开并重新应用必要的键即可

const updatePartlyState = () => {
  setState(prevState => ({
    ...prevState,
    detail: initialState.detail,
  }))
}

或者,您可以像使用越来越频繁一样使用库。

详细信息:initialState.detail
?@jornsharpe修复了错误。。!谢谢。那么现在你问题中的代码行了吗?那问题是什么?如果没有,请给出解释。
const updatePartlyState = () => {
  setState(prevState => ({
    ...prevState,
    detail: initialState.detail,
  }))
}