React Native - Immer с Expo.io Reducer "пользователь" вернул неопределенное значение во время инициализации - PullRequest
0 голосов
/ 27 июня 2019

Я работаю над реагированием нативного проекта на Expo.io При попытке добавить immer к редуктору выдается вышеуказанная ошибка.

До (работает)

import { LOGIN_ACTION } from '../actions/actionTypes';

const initialState = {
  user: false,
};

const User = (state = initialState, action) => {
  switch (action.type) {
    case LOGIN_ACTION:
      return {
        ...state,
        'user': action.user
      };

    default:
      return state;
  }
};

export default User;

После (не работает)

import produce from 'immer';
import { LOGIN_ACTION } from '../actions/actionTypes';

const initialState = {
  user: false,
};

const User = (state = initialState, action) => {
  produce((state, draft) => {
    switch (action.type) {
      case LOGIN_ACTION:
        draft.user = action.user;
        break;
    }
  });
};

export default User;

Что я делаю не так?

Вот полная ошибка, которую я получаю:

Редуктор "пользователь" вернул неопределенное значение во время инициализации. Если состояние, переданное редуктору, не определено, вы должны явно вернуть исходное состояние. Начальное состояние не может быть неопределенным. Если вы не хотите устанавливать значение для этого редуктора, вы можете использовать null вместо undefined.

redux.js: 366: 22 для каждого [нативный код]: 0 assertReducerShape redux.js: 359: 32 combineReducers redux.js: 422: 23 index.js: 4: 31 loadModuleImplementation require.js: 292: 12 index.js: 2 loadModuleImplementation require.js: 292: 12 App.js: 5 loadModuleImplementation require.js: 292: 12 AppEntry.js: 2 loadModuleImplementation require.js: 292: 12 guardedLoadModule require.js: 179: 45 глобальный код : 0

...