我试图设置状态以响应来自后端的响应,如下所示。响应存储在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})
    }

09-16 16:55