React Native-带有Expo.io Reducer“用户”的Immer在初始化期间返回未定义

时间:2019-06-27 08:22:14

标签: react-native react-redux expo immer.js

我正在与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

0 个答案:

没有答案