首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实现redux-persist

实现redux-persist
EN

Stack Overflow用户
提问于 2021-04-13 13:44:37
回答 1查看 26关注 0票数 0

我正在尝试弄清楚如何在我的应用程序中配置redux持久化。在我的react index.js文件中,我得到一个“‘持久化’没有定义”。我只需要持久化一个user_id,这样当页面刷新时,在组件did挂载上获取的数据就不会丢失。

这是我的store.js文件

代码语言:javascript
复制
import { createStore, combineReducers, applyMiddleware } from 'redux';
import userReducer from './reducers/userReducer';
import promiseMiddleware from 'redux-promise-middleware';
import { persistStore, persistReducer } from 'redux-persist';
import storage from 'redux-persist/lib/storage';

const rootReducer = combineReducers({
    userReducer
});

const persistConfig = {
    key: 'root',
    storage,
  }
   
  const persistedReducer = persistReducer(persistConfig, rootReducer)
   
  export default () => {
    let store = createStore(persistedReducer, applyMiddleware(promiseMiddleware))
    let persistor = persistStore(store)
    return { store, persistor }
  }

//export default createStore(rootReducer,  applyMiddleware(promiseMiddleware));

这是我的react应用程序中的index.js文件。

代码语言:javascript
复制
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import reportWebVitals from './reportWebVitals';
import { HashRouter as Router } from 'react-router-dom';
import { Provider } from 'react-redux';
import store from './redux/store';
import { PersistGate } from 'redux-persist/integration/react'



ReactDOM.render(
  <React.StrictMode>
    <Provider store={store}>
    <PersistGate loading={null} persistor={persistor}>
      <Router>
        <App />
      </Router>
      </PersistGate>
    </Provider>
  </React.StrictMode>,
  document.getElementById('root')
);

reportWebVitals();
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-13 13:50:33

您要导入的store是一个应该触发的函数,以获得实际的storepersistor

重构您的存储导入,如下所示

代码语言:javascript
复制
import useStore from './redux/store';


const { store, persistor } = useStore();

或者:

重构您的store.js文件

代码语言:javascript
复制
let store = createStore(persistedReducer, applyMiddleware(promiseMiddleware));
let persistor = persistStore(store);
export { store, persistor }

并从index.js文件导入它,如下所示

代码语言:javascript
复制
import { store, persistor } from './redux/store';
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67069305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档