javascript - 对对象使用 ... 运算符

标签 javascript redux

我不知道如何使用扩展运算符更深入一层。我正在使用 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}

注意添加的进度。

但这不是正确访问它的方式 - 它会引发错误,正确的方法是什么?

注意:关键是也不要修改 hasSignedUp - 我只想使用扩展运算符访问和修改 hasSeenTutorial。

编辑:这个问题是独特的 - 我想知道如何仅使用扩展语法 ... 而不是使用 Object.create 或 Object.assign 来做到这一点 - 如果我使用了这些我可能不会同时混合 ...

最佳答案

case 'UPDATE_TUTORIAL_SEEN':
  return {
    ...state,
    progress: {
      ...state.progress,
      hasSeenTutorial: action.payload
    }
  };

关于javascript - 对对象使用 ... 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43126177/

相关文章:

javascript - 如何制作多个可移动元素

javascript - 如何在ajax调用时显示加载图像

javascript - 在 JavaScript 回调中使用上次提取内存提取数组值

javascript - 如何在没有 href 链接的情况下获取标签

android - react native -Redux : Multiple instances of same state in app

javascript - 无法从 redux 存储中获取数据

javascript - Angular 缺失法

javascript - React/Redux 无法迭代状态数组

reactjs - React Redux 容器组件

javascript - 出现错误 : Module parse failed: . .. 意外字符 '#'