分配一个已分解的对象以在createSlice中声明

时间:2019-06-06 12:08:12

标签: react-redux

我最近开始使用redux-starter-kit来减少项目中的样板代码。使用它的一个整洁的优点是,它使您可以直接更改状态。

但是,如果我尝试执行以下操作,则将无法正常工作:

const initialState = {
  userId: '',
  isLoading: false,
  error: null,
};

const userSlice = createSlice({
  slice: 'user',
  initialState,
  reducers: {
    loginRequest: state => {
      state.isLoading = true;
    },
    loginSuccess: (state, action) => {
      state = { ...action.data.login, isLoading: false };
    },
    loginFailure: (state, action) => {
      state.isLoading = false;
      state.error = action.error;
    },
  },
});

同时执行以下操作之一可以正常工作:

  • Object.assign(state, { ...action.data.login, isLoading: false });
  • state.userId = action.data.login.userId; state.isLoading = false;

此行为背后的原因是什么?

0 个答案:

没有答案