Reactjs和redux来创建应用程序。我已经将reducer数据连接到localStorage persist:root变量。现在尝试在注销时删除persist:root,但是失败了。尝试了很多来自Web的解决方案,现在代码看起来像下面这样。但是仍然不工作。请帮助。
异径管:
import {applyMiddleware, createStore} from 'redux';
import createSagaMiddleware from 'redux-saga';
import {persistStore, persistReducer} from 'redux-persist';
import autoMergeLevel2 from 'redux-persist/lib/stateReconciler/autoMergeLevel2';
import storage from 'redux-persist/lib/storage';
import logger from 'redux-logger';
// eslint-disable-next-line import/no-cycle
import rootReducer from '../redux/reducers';
// eslint-disable-next-line import/no-cycle
import rootSaga from '../redux/sagas';
const persistConfig = {
key: 'root',
storage,
stateReconciler: autoMergeLevel2
};
const bindMiddleware = (middleware) => {
return applyMiddleware(...middleware);
};
const sagaMiddleware = createSagaMiddleware();
export const store = createStore(
persistReducer(persistConfig, rootReducer),
bindMiddleware([sagaMiddleware])
);
sagaMiddleware.run(rootSaga);
export const persistor = persistStore(store);
商店:
import { combineReducers } from "redux";
import commonReducer from "./common";
import loginReducer from "./auth/login";
import companyReducer from "./company"
import processReducer from "./process"
import notificationReducer from "./notification"
import recentProgressReducer from "./recentProgress"
import projectManagementReducer from "./projectManagement";
import stepManagementReducer from "./stepManagement";
import memberManagementReducer from "./memberManagement";
const appReducer = combineReducers({
commonReducer,
processReducer,
companyReducer,
notificationReducer,
loginReducer,
recentProgressReducer,
projectManagementReducer,
stepManagementReducer,
memberManagementReducer
});
export default (state, action) => {
if (action.type === "SIGNOUT_REQUEST") {
localStorage.removeItem('persist:root')
return appReducer(undefined, action);
}else{
return appReducer(state, action);
}
};
这是行不通的。请帮助
1条答案
按热度按时间2hh7jdfx1#
persist:root不会被删除,因为“redux-persist”需要它来检索。不要试图删除它,只需要像使用appReducer(undefined,action)那样将状态置空即可;。