我无法弄清楚如何使用点差运算符更深入一级。我正在使用Redux,我有这个用户状态:
const INITIAL_STATE = {
token: null,
progress: {
hasSeenTutorial: false,
hasSignedUp: false
},
information: {
fullname: null,
username: null,
phone: null,
verificationCode: null
}
}
我正在尝试在我的操作中使用展开运算符将hasSeenTutorial
更改为true
:
case 'UPDATE_TUTORIAL_SEEN':
return {...state, hasSeenTutorial: action.payload}
但是这会在我的对象的末尾添加一个新的hasSeenTutorial
,所以显然我想使用这样的东西:
case 'UPDATE_TUTORIAL_SEEN':
return {...state, progress.hasSeenTutorial: action.payload}
请注意添加的progress.
但这不是你如何正确访问它 - 它会抛出一个错误,正确的方法是什么?
注意:关键是也不要修改hasSignedUp - 我只想使用扩展运算符访问和修改hasSeenTutorial。
编辑:这个问题很独特 - 我想知道如何只使用扩展语法...
而不使用Object.create或Object.assign - 如果我使用那些我可能不会同时在...
中混合。
答案 0 :(得分:2)
case 'UPDATE_TUTORIAL_SEEN':
return {
...state,
progress: {
...state.progress,
hasSeenTutorial: action.payload
}
};