javascript - 当我添加或编辑减速器时,是否存在更改持久化还原版本的方法?
问题描述
我有点被困扰我的事情所困扰,通常我使用redux persist store将redux store保存在本地存储中,但是当我添加或编辑reducer并在生产中对我的应用程序进行新部署时,redux persist 版本无法识别新的 redux 持久存储并引发错误,因此为了解决此问题,我必须在生产环境中清理浏览器缓存,这解决了我的问题。
所以我的问题是,redux persist 中存在一些东西,我可以用来告诉生产中的旧持久版本,现在这是新版本吗?
这是我的代码
import { createStore, applyMiddleware, Store } from 'redux';
import { composeWithDevTools } from 'redux-devtools-extension';
import thunk from 'redux-thunk';
import { persistStore, Persistor } from 'redux-persist';
import { persistReducer } from 'redux-persist';
import storage from 'redux-persist/es/storage';
import rootReducer from './redux/reducers/index';
export type RootState = ReturnType<typeof rootReducer>;
export interface ConfiguredStore {
store: Store;
persistor: Persistor;
}
const persistConfig = {
key: 'root',
storage,
};
/**
* Configure and returns store and persistor.
*/
export default (): ConfiguredStore => {
const store = createStore(
persistReducer(persistConfig, rootReducer),
composeWithDevTools(applyMiddleware(thunk)),
);
const persistor = persistStore(store);
return { store, persistor };
};
这也是索引配置
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
import { Provider } from 'react-redux';
import { PersistGate } from 'redux-persist/integration/react';
import configureStore from './configureStore';
import { I18nextProvider } from 'react-i18next';
import i18next from './translate';
import * as Sentry from '@sentry/react';
import { Integrations } from '@sentry/tracing';
import amplitude from 'amplitude-js';
import './assets/GlobalStyles.scss';
import 'bulma/css/bulma.min.css';
const { store, persistor } = configureStore();
Sentry.init({
dsn: `${process.env.REACT_APP_SENTRY}`,
integrations: [new Integrations.BrowserTracing()],
tracesSampleRate: 1.0,
});
amplitude.getInstance().init(`${process.env.REACT_APP_AMPLITUDE}`);
ReactDOM.render(
<Provider store={store}>
<PersistGate loading={null} persistor={persistor}>
<I18nextProvider i18n={i18next}>
<App />
</I18nextProvider>
</PersistGate>
</Provider>,
document.getElementById('root'),
);
我希望有人可以指导我或给我一些信息..我会很感激。
解决方案
推荐阅读
- javascript - WebSQL中的变量范围
- snowflake-cloud-data-platform - 为什么我们不能从工作表中使用 PUT 和 GET
- authentication - 在 Pine 脚本中验证外部客户端
- python - 如何使用 urllib3 下载服务器 SSL 证书?
- imdbpy - IMDBPY - 如何从系列中获得创作者?
- ios - GAD adLoader 代表没有被调用
- vba - 从 VBA 运行多个 Matlab 脚本
- java - 访问 SQL IDENTITY 值会阻止 Spring @Sql 测试在不同的数据库上运行
- f# - 如何使用 F# 在 akka.net 中创建子演员?
- list - 查找列表中出现次数的函数