这是状态对象:
const initialState = {
data: {
user: '',
token: '',
}
}
reducer :
case 'DO_SOMETHING':
return {...state, data: action.payload }
如果我软复制如上所示的状态,我将覆盖状态的整个 data
部分。如何在不覆盖 token
的情况下仅更新具有给定负载的用户?
最佳答案
如果有效负载只是用户
,那么只需使用您通常用于state
对象的相同解构模式:
return {
...state,
data: {
...state.data,
user: action.payload
}
}
此模式可以根据需要嵌套,因此您可以拥有大型结构化状态对象,并且只需在有效负载中传递您想要的字段。
关于javascript - 我怎样才能只更新部分状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58719145/