javascript - 我怎样才能只更新部分状态

标签 javascript reactjs redux

这是状态对象:

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/

相关文章:

javascript - svg 圆形路径动画

javascript - 在react-json-tree中显示HTML标签

javascript - react 终极版 : Confused about where to define certain actions

angular - Angular2.0+ 中的状态管理

javascript - 使用 Jasmine 在 CoffeeScript 中测试 Backbone.js 时出现类型错误

javascript - 任何拉伸(stretch)背景图像的方法

reactjs - 如何在 Formik 中创建连接/依赖的选择元素?

javascript - Redux 操作 js 文件

javascript - Rails 3.2,javascript 执行两次

reactjs - 如何从react js中的代码镜像中获取值?