[英]How to update nested object property in Redux + React?
所以第一, user
有一些屬性(對象name
, color
, age
)獲取通過建立SET_USER
,我想更新的name
里面屬性user
通過對象UPDATE_USER_NAME
,但是當我用下面的代碼做樓下嵌套循環在UPDATE_USER_NAME
, name
屬性不會更新。
我究竟做錯了什么? 如果我做類似user: {action.name, ...state.user}
,則對象user
將得到更新並可以工作,但這只是從action.name
創建另一個新屬性,而不是更新user
對象內的當前name
。
const DEFAULT_STATE = {
user: {},
}
export default function(state = DEFAULT_STATE, action) {\
switch(action.type) {
case actionTypes.SET_USER:
return {
...state,
user: action.user,
}
case actionTypes.UPDATE_USER_NAME:
return {
...state,
user: {
name: action.name,
...state.user,
}
}
default:
return state
}
}
您只需要稍微改變點差的順序即可:
case actionTypes.UPDATE_USER_NAME:
return {
...state,
user: {
...state.user,
name: action.name,
}
}
這會將user
設置為當前state.user
,然后覆蓋name
。 傳播類似於Object.assign
(從左到右)。 這是因為在對象文字中分配相同的鍵將是“最后一個獲勝”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.