更新 redux 状态对象属性

dhj*_*dhj 3 javascript ecmascript-6 reactjs redux react-redux

如何在 redux 中更新对象的属性并保留对象的其余部分..

const appReducer = (state = initialState, action) => {
  switch (action.type) {
    case 'LOGIN_SUCCESS':
      return Object.assign({}, state, {
        user: { loggedIn: true, level: 'default' },
      });

    case 'UPDATE_PACKAGE': {
      // add a new value for the user.level which would be in action.level
      return { ...state, level: action.level };
    }

    default:
      return state;
  }
};
Run Code Online (Sandbox Code Playgroud)

所以我希望 UPDATE_PACKAGE 更改 redux 存储级别属性的内容...但它没有改变...

Cla*_*ity 5

所以看起来您正在设置level根状态而不是用户对象。

这应该可以修复它:

 case "UPDATE_PACKAGE": {
    return { ...state, user: { ...state.user, level: action.level } };
  }
Run Code Online (Sandbox Code Playgroud)