如何更新Redux + React中的嵌套对象属性?

时间:2016-10-05 08:18:41

标签: javascript reactjs react-native redux react-redux

首先,具有一些属性(usernamecolor)的age对象通过SET_USER设置,我希望通过name更新user对象中的UPDATE_USER_NAME属性,但当我使用下面的代码执行此操作时,UPDATE_USER_NAME中的嵌套循环,{{1属性没有得到更新。

我做错了什么?如果我执行name之类的操作,则对象user: {action.name, ...state.user}会更新并正常工作,但这只是从user创建另一个新属性,而不是更新action.name内的name 1}}对象。

user

1 个答案:

答案 0 :(得分:5)

您只需稍微更改点差的顺序:

case actionTypes.UPDATE_USER_NAME:
      return {
        ...state,
        user: {
          ...state.user,
          name: action.name,
        }
      }

这会将user设置为当前state.user,然后覆盖name。传播的工作方式类似于Object.assign(从左到右)。这是因为在对象文字中分配相同的键将是“最后一次获胜”。