Я хотел бы знать, выполнимо ли то, чего я пытаюсь достичь, и если да, то я хотел бы узнать, что я делаю неправильно.
Я использую библиотекуact-native-threads, чтобы создать отдельный «поток». Внутри должна быть некоторая функция setInterval, которая проверяет текущее состояние приложения, скажем, каждые 20 секунд.
Теперь внутри этой ветки я пытался сделать что-то похожее на то, что было описано в лучшем ответе на этот вопрос:
Каков наилучший способ получить доступ к хранилищу резервов вне реагирующего компонента?
Тем не менее, я использую redux-persist, поэтому у меня нет простой переменной store внутри файла конфигурации store.
Код для настройки магазина:
const rootReducer = combineReducers({
appState: appStateReducer,
entries: entriesReducer,
listHelper: listHelperReducer,
authenticate: authenticateReducer
})
const persistConfig = {
key: 'root',
storage,
stateReconciler: autoMergeLevel2,
blacklist: [ 'appState' , 'listHelper'],
whitelist: ['authenticate' , 'entries']
}
const pr = persistReducer(persistConfig, rootReducer)
const configureStore = () => {
const store = createStore(pr, devToolsEnhancer({ realtime: true, hostname: 'localhost', port: 8082 }))
const persistor = persistStore(store)
return { persistor, store }
}
export default configureStore
Я попытался импортировать configureStore из этого файла и получить доступ к такому состоянию в index.thread.js:
console.tron.log(configureStore().store.getState());
Однако это возвращает исходное состояние. Мне нужно текущее состояние после регидратации.
Кто-нибудь пытался решить подобную проблему? Буду очень признателен за любые подсказки. Спасибо.
Редактировать: вот файл index.js, где вызывается configureStore.
const store = configureStore();
const RNRedux = () => (
<Provider store={store.store}>
<PersistGate loading={<LoadingScreen />} persistor={store.persistor}>
<App />
</PersistGate>
</Provider>
);
AppRegistry.registerComponent("ProjectName", () => RNRedux);