首页 > 解决方案 > 使用 redux-persist 后操作不起作用

问题描述

我正在使用 redux saga 作为 react 项目的中间件。在我转移到 redux-persist 库以使我的状态在整个组件中持久化之前,一切都运行良好。但是 saga 动作的行为在那之后变得有点不可预测。之前调度的动作不会在加载组件时调度,尽管状态已经变得持久。

这是我为将 redux-persist 集成到我的项目中所做的两个文件的更改:

store.js

import { persistStore,persistReducer } from 'redux-persist';
import storage from 'redux-persist/lib/storage';
const sagaMiddleware = createSagaMiddleware();

 const persistConfig = {
    key: 'root',
    storage,
    stateReconciler: autoMergeLevel2,
};
const persistedReducer=persistReducer(persistConfig,rootReducer);
 const configureStore = (initialState={x:'dd'},) => {
 
  const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;

  return {
    ...createStore(persistedReducer,composeEnhancers(applyMiddleware(sagaMiddleware))),
    runSaga:sagaMiddleware.run(rootSaga)
  }
};


export default configureStore;

应用程序.js

import {PersistGate } from 'redux-persist/es/integration/react';
//import {persistor} from '../reducers/store';
import { persistStore, } from 'redux-persist';


const store = configureStore()
let persistor= persistStore(store);
//const store = configureStore()

class App extends React.Component {
 
    render() {

      
        return(
          <Provider store={store}>
            <PersistGate persistor={persistor}>
            <AppNavbar/> <Header />
            <div>
          <NotificationContainer/>
            <BrowserRouter>
              <Switch>
                <Route path='/' component={AppRoutes} />
              </Switch>
            </BrowserRouter>
          </div>
          </PersistGate>
        </Provider>
        )
}
}

我在这里有什么遗漏吗,我应该关心的任何技术性问题。我卡了很长时间,请帮忙。

标签: reactjsreduxreact-reduxredux-sagaredux-persist

解决方案


推荐阅读