如何清理你的商店

问题描述 投票:0回答:2

在发帖之前,我尝试阅读丹·阿布拉莫夫在这篇文章

中的超级答案

我的代码有一点问题,我很乐意理解我的错误:

1)这是我的索引文件

import { combineReducers } from 'redux-immutable';

import { reducer as formReducer } from 'redux-form';
import appReducer from './appReducer';
import errorReducer from './errorReducer';
import loginReducer from './loginReducer';
import modalReducer from './modalReducer';
import changeRequestReducer from './changeRequestReducer';
import releaseReducer from './releaseReducer';
import releaseReviewReducer from './releaseReviewReducer';
import logoutReducer from './logoutReducer';
import customAvatarReducer from './customAvatarReducer';


    export default combineReducers({
      appReducer,
      errorReducer,
      loginReducer,
      changeRequestReducer,
      releaseReducer,
      modalReducer,
      releaseReviewReducer,
      form: formReducer,
      logoutReducer,
      customAvatarReducer,
    });

我尝试添加这个:

const rootReducer = (state, action) => {
  if (action.type === USER_LOGOUT) {
    const state = undefined;
  }

  return reducers(state, action);
};

const reducers = combineReducers({
  appReducer,
  errorReducer,
  loginReducer,
  changeRequestReducer,
  releaseReducer,
  modalReducer,
  releaseReviewReducer,
  form: formReducer,
  logoutReducer,
  customAvatarReducer,
});

这是文件树,

问题是我收到错误“您达到了最大调用堆栈大小”

我做错了什么?我不知道这是否是问题所在,但我们正在使用 Immutable.js

更新

这是收到的错误

这是现在的索引文件

import { combineReducers } from 'redux-immutable';
import { reducer as formReducer } from 'redux-form';
import appReducer from './appReducer';
import errorReducer from './errorReducer';
import loginReducer from './loginReducer';
import modalReducer from './modalReducer';
import changeRequestReducer from './changeRequestReducer';
import releaseReducer from './releaseReducer';
import releaseReviewReducer from './releaseReviewReducer';
import logoutReducer from './logoutReducer';
import customAvatarReducer from './customAvatarReducer';
import { USER_LOGOUT } from '../actions/logoutActions';

const rootReducer = (state, action) => {
  if (action.type === USER_LOGOUT) {
    const state = undefined;
  }

  return reducers(state, action);
};

const reducers = combineReducers({
  appReducer,
  errorReducer,
  loginReducer,
  changeRequestReducer,
  releaseReducer,
  modalReducer,
  releaseReviewReducer,
  form: formReducer,
  logoutReducer,
  customAvatarReducer,
  rootReducer,
});

export default reducers;
reactjs redux
2个回答
2
投票

尝试改变

export default reducers;

export default rootReducer;

0
投票

您只需替换位线,尝试使用下面的代码。

const rootReducer = (state, action) => {
  if (action.type === USER_LOGOUT) {
    state = [];
  }

  return reducers(...state, action);
};
© www.soinside.com 2019 - 2024. All rights reserved.