我试图设置状态以响应来自后端的响应,如下所示。响应存储在result
中。
const [object,setObjectState] = useState()
axios.post(`api`, { withCredentials: true })
.then( res => {
const result = res.data; //result : {id : 1, name : firstName}
setObjectState({result})
}
像上面
setState({result}
一样设置状态,将object
的状态设置为{ result :{id : 1, name : firstName}}
如何在不显式破坏
object
对象的情况下将{id : 1, name : firstName}
的状态设置为result
?我知道我们可以分别从
result
提取值,然后为setObjectState
创建一个新对象。但是在我的实际用例中,`result中有太多的值,如果后端发送新值,我不想触摸代码。 最佳答案
您可以使用传播算子执行类似操作。
这将在result
内传播数据并将其设置为状态。
const [object,setObjectState] = useState()
axios.post(`api`, { withCredentials: true })
.then( res => {
const result = res.data; //result : {id : 1, name : firstName}
setObjectState({...result})
}