在发帖之前,我尝试阅读丹·阿布拉莫夫在这篇文章
中的超级答案我的代码有一点问题,我很乐意理解我的错误:
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;
尝试改变
export default reducers;
到
export default rootReducer;
您只需替换位线,尝试使用下面的代码。
const rootReducer = (state, action) => {
if (action.type === USER_LOGOUT) {
state = [];
}
return reducers(...state, action);
};