首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Redux-persist不工作:页面刷新清除状态

Redux-persist不工作:页面刷新清除状态
EN

Stack Overflow用户
提问于 2019-08-07 19:49:02
回答 1查看 1.6K关注 0票数 0

为了在页面刷新时保持状态,我尝试集成redux-persist。然而,它并不起作用。页面刷新将清除该状态。下面是_persist对象在状态下的样子:

代码语言:javascript
复制
_persist: {
   version: -1,
   rehydrated: true
}

下面是configureStore.js:

代码语言:javascript
复制
import { createStore, applyMiddleware, compose } from "redux";
import logger from "redux-logger";
import thunk from "redux-thunk";
import rootReducer from "./_reducers/rootReducer";
import storage from "redux-persist/lib/storage";
import { persistStore, persistReducer } from "redux-persist";
const persistConfig = {
    key: "root",
    storage,
    whitelist: []
};
const persistedReducer = persistReducer(persistConfig, rootReducer);
const middlewares = [thunk];
// if (__DEV__) react native check dev
middlewares.push(logger);

const store = createStore(
    persistedReducer,
    {},
    compose(
        applyMiddleware(...middlewares),
        window.devToolsExtension ? window.devToolsExtension() : f => f)
);
const persistor = persistStore(store);

export { store, persistor };

这是index.js

代码语言:javascript
复制
import React from 'react';
import ReactDOM from 'react-dom';
import { Router } from 'react-router-dom';
import App from './App';
import registerServiceWorker from './registerServiceWorker';

import { Provider } from 'react-redux';

import { PersistGate } from "redux-persist/lib/integration/react";
import { store, persistor } from "./configureStore";



const baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');
const rootElement = document.getElementById('root');

ReactDOM.render(
    <Router basename={baseUrl} history={history}>
        <Provider store={store}>
            <PersistGate loading={null} persistor={persistor}>
                <App />
            </PersistGate>
        </Provider>
    </Router>,
    rootElement);

registerServiceWorker();

我找不到代码的问题所在。有什么帮助吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-07 19:59:48

代码语言:javascript
复制
const persistConfig = {
    key: "root",
    storage,
    whitelist: ["pass reducer name which you want to persist in string"] e.g: whitelist: ["userAuth", "widgetAuth"]
};

如果您希望保留整个状态,而不是从persistConfig中删除白名单键

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57393789

复制
相关文章

相似问题

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