反応ネイティブの Android アプリケーションで状態を永続化するために 1 週間以上試しましたが、状態を復元した後は常に初期値になります。Redux devtools で ASyncStorage の内容または状態を確認すると、初期状態です。
{
"status":"{\"actions\":[]}",
"list":"{\"actions\":[]}",
"map":"{\"site_ids\":{},\"alarmCounts\":[],\"geoJSON\":{}}",
"_persist":"{\"version\":-1,\"rehydrated\":true}"
}
redux-reset を使用するとエラーが発生Unexpected key "_persist" ...
し、Google からの解決策が見つかりませんでした。
store.flush()
またはを実行store.purge()
しても、ASyncStorage に変化は見られません。
私のconfigureStoreファイルは次のとおりです。問題はここのどこかにあると思います。何か助けはありますか?
import { createStore } from "redux";
import { composeWithDevTools } from 'redux-devtools-extension';
import { persistStore, persistCombineReducers } from "redux-persist";
import reduxReset from 'redux-reset';
import { AsyncStorage } from 'react-native'
import userReducer from '../reducers/user';
import statusReducer from '../reducers/status';
import listReducer from '../reducers/list';
import mapReducer from '../reducers/map';
function reset(): void {
console.log('Reseting state');
store.dispatch({
type: 'RESET'
});
// persistor.purge();
};
function flush() {
console.log('FLUSH');
persistor.flush();
}
const enhancer = composeWithDevTools(
reduxReset()
);
const appReducer = persistCombineReducers(
{ // cfg
key: 'primary',
storage: AsyncStorage,
blacklist: ['user'],
throttle: 1000
},
{
user: userReducer,
status: statusReducer,
list: listReducer,
map: mapReducer
}
);
const rootReducer = (state, action) => {
return appReducer(state, action);
}
const store = createStore(
rootReducer,
enhancer
);
const persistor = persistStore(store, null);
export default { store, persistor, reset, flush };
redux@3.7.2、redux-persist@5.9.1、react-native@0.54.0 を使用します