首先,具有一些属性(user
,name
,color
)的age
对象通过SET_USER
设置,我希望通过name
更新user
对象中的UPDATE_USER_NAME
属性,但当我使用下面的代码执行此操作时,UPDATE_USER_NAME
中的嵌套循环,{{1属性没有得到更新。
我做错了什么?如果我执行name
之类的操作,则对象user: {action.name, ...state.user}
会更新并正常工作,但这只是从user
创建另一个新属性,而不是更新action.name
内的name
1}}对象。
user
答案 0 :(得分:5)
您只需稍微更改点差的顺序:
case actionTypes.UPDATE_USER_NAME:
return {
...state,
user: {
...state.user,
name: action.name,
}
}
这会将user
设置为当前state.user
,然后覆盖name
。传播的工作方式类似于Object.assign
(从左到右)。这是因为在对象文字中分配相同的键将是“最后一次获胜”。