2 javascript reactjs react-native redux react-redux
所以,第一,user有一些属性(对象name,color,age)获得通过建立SET_USER,我想更新的name内部属性user通过对象UPDATE_USER_NAME,但是当我用下面的代码楼下做与嵌套循环中UPDATE_USER_NAME,在name财产没有得到更新.
我究竟做错了什么?如果我做类似的事情user: {action.name, ...state.user},对象user会更新并运行,但这只会创建另一个新属性,action.name而不是更新对象name内部的当前内容user.
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
}
}
Run Code Online (Sandbox Code Playgroud)
你只需要稍微改变点差的顺序:
case actionTypes.UPDATE_USER_NAME:
return {
...state,
user: {
...state.user,
name: action.name,
}
}
Run Code Online (Sandbox Code Playgroud)
这将设置user为当前state.user然后覆盖name.传播就像Object.assign(从左到右).这是因为在对象文字中分配相同的键将是"最后一次获胜".
| 归档时间: |
|
| 查看次数: |
665 次 |
| 最近记录: |