首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >应用从应用商店或play store更新时崩溃,因为它有旧的本地存储

应用从应用商店或play store更新时崩溃,因为它有旧的本地存储
EN

Stack Overflow用户
提问于 2019-09-12 22:37:08
回答 1查看 444关注 0票数 2

我使用了redux - persisting将数据持久化到redux存储中。我现在在商店中添加了一些新的标志,但是当应用程序从商店更新时,它不会得到新的标志,因为它有旧的本地存储,并且本地存储在更新应用程序时不会清除。这会导致应用程序崩溃,直到我在删除应用程序后重新安装它。

代码语言:javascript
复制
'use strict';

/* React Native */
import { AsyncStorage } from 'react-native';

/* Officetrax */
import { createStore, applyMiddleware } from 'redux';
import app from './reducers';

/* Thunk */
import thunk from 'redux-thunk';

/* Redux Storage */
import excludeSaveActionConstants from './constants/excludeSaveActionConstants';

/* Remote Redux Dev Tools */
import { composeWithDevTools } from 'remote-redux-devtools';

/* Redux Offline */
import { offline } from '@redux-offline/redux-offline';
import offlineConfig from '@redux-offline/redux-offline/lib/defaults';

/* Redux Logger */
import { createLogger } from 'redux-logger';

export default function configureStore() {




    // Create redux logger
    const logger = createLogger({
        //logger: remoteConsole,
        logErrors: true,
    });

    let persistOptions = { ...offlineConfig, whitelist: excludeSaveActionConstants };

    const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || composeWithDevTools;
    // Create the store with middleware applied
    let store = createStore(app, composeEnhancers(
        applyMiddleware(thunk),
        offline(persistOptions)
    ));

    return store;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-13 02:57:56

如果你正在改变reducers结构,你应该迁移,或者像Jesse Schokker建议的那样清除所有缓存,但是如果你真的不想丢失一些数据,那么就去迁移。

代码语言:javascript
复制
import { createMigrate } from 'redux-persist';

const migrations = {
    2: state => {
      const { yourReducer } = state;
      const mynewStructure = { ...yourReducer, myNewKey: 'some value' }; 
      state.yourReducer = mynewStructure;
      return state;
      };
    }
  };

  const persistConfig = {
    ...offlineConfig, 
    whitelist: excludeSaveActionConstants
    version: 2, // Add a version which will correspond to the number declared in your migrate
    migrate: createMigrate(migrations, { debug: false })
  };
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57909096

复制
相关文章

相似问题

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