Присвоение деструктурированного объекта состоянию в createSlice - PullRequest
0 голосов
/ 06 июня 2019

Я недавно начал использовать комплект редукционного стартера для уменьшения стандартного кода в моем проекте. Преимущество его использования в том, что оно позволяет напрямую изменять состояние.

Однако, если я попытаюсь сделать следующее, вещи не будут работать:

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;

Есть ли причина такого поведения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...