【问题标题】:Add redux-persist on working redux config在工作的 redux 配置上添加 redux-persist
【发布时间】:2018-10-17 20:30:58
【问题描述】:

我可以在 redux-persist 的配置方面使用一些帮助。我有一个带有两个中间件的 redux 商店,配置有效,但我无法正确添加 redux-persist。要么我设法补充水分,但这些动作不再调用减速器,要么我有各种错误。我发现 redux-persist 文档有点差。

这是我目前的配置:

import { createStore, applyMiddleware, compose } from 'redux';
import { persistStore, persistReducer } from 'redux-persist'
import storage from 'redux-persist/lib/storage'
import thunk from 'redux-thunk';
import logger from 'redux-logger';
import allReducer from './reducers';

export default function configureStore() {
  return createStore(
    allReducer,
    applyMiddleware(thunk, logger)
  );
} 

【问题讨论】:

    标签: redux react-redux redux-persist


    【解决方案1】:

    我终于成功了,如果有帮助,这里是要设置的配置:

    Store.js

    import { createStore, applyMiddleware, compose } from 'redux';
    import { persistReducer } from 'redux-persist'
    import LocalStorage from 'redux-persist/lib/storage'
    import thunk from 'redux-thunk';
    import logger from 'redux-logger';
    import allReducer from './reducers';
    
    const persistConfig = {
      key: 'xxxx-key-xxxx',
      storage: LocalStorage,
    }
    
    const persistedReducer = persistReducer(persistConfig, allReducer)
    
    
    export default createStore(
      persistedReducer,
      applyMiddleware(thunk, logger)
    );
    

    persistStore.js

    import { persistStore } from 'redux-persist'
    import store from './store';
    
    export default persistStore(store);
    

    App.js

    import React, { Component } from 'react';
    import { Provider } from 'react-redux'
    import { PersistGate } from 'redux-persist/integration/react'
    import store from './stores/store';
    import persistor from './stores/persistedStore';
    
    import Router from './routes'
    import './App.css';
    
    class App extends Component {
      render() {
        return (
          <Provider store={store}>
            <PersistGate loading={null} persistor={persistor}>
              <Router/>
            </PersistGate>
          </Provider>
        );
      }
    }
    
    export default App;
    

    这里是依赖和版本列表

    "react": "^16.5.2",
    "react-dom": "^16.5.2",
    "react-redux": "^5.0.7",
    "react-router-dom": "^4.3.1",
    "react-scripts": "2.0.5",
    "redux": "^4.0.1",
    "redux-logger": "^3.0.6",
    "redux-persist": "^5.10.0",
    "redux-thunk": "^2.3.0"
    

    目前命名的导出不起作用,所以我不得不为持久化器创建第二个文件,以便能够使用存储和持久化器的默认导出。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-04
      • 2021-06-03
      • 1970-01-01
      • 1970-01-01
      • 2020-07-12
      • 2018-06-06
      • 1970-01-01
      • 2022-01-22
      相关资源
      最近更新 更多