Я нахожусь в процессе настройки приложения React Native с магазином Redux и PersistGate. Магазин Redux настроен и работает должным образом, но из-за PersistGate приложение перестает отображать даже первый экран. Без PersistGate приложение отображается нормально.
Вот код App.js:
import React, {Component} from 'react';
import { Provider } from 'react-redux';
import { createStore, applyMiddleware } from 'redux';
import thunk from 'redux-thunk';
import { persistStore, autoRehydrate } from 'redux-persist';
import { PersistGate } from 'redux-persist/integration/react';
import AppNavigator from './AppNavigator';
import SplashScreen from 'react-native-splash-screen';
import allReducers from './store/reducers/index';
const store = createStore(
allReducers,
applyMiddleware(thunk),
//compose(applyMiddleware(thunk), autoRehydrate()),
);
// This line makes store persistent.
const persistor = persistStore(store);
type Props = {};
export default class App extends Component<Props> {
componentDidMount() {
if (SplashScreen) {
SplashScreen.hide();
}
}
render() {
return (
<Provider store = { store }>
<PersistGate persistor = {persistor}>
<AppNavigator />
</PersistGate>
</Provider>
);
}
}
Файл индекса редуктора:
import {combineReducers} from 'redux';
import userReducer from './UserReducer';
const allReducers= combineReducers({
user: userReducer,
});
export default allReducers;
Если я удалю тег <PersistGate persistor = {persistor}> из файла App.js, приложение будет работать нормально. Но когда я использую PersistGate, я просто вижу белый экран без каких-либо сбоев.
Что мне не хватает, что вызывает этот странный вывод?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вам также необходимо вызвать функцию persistReducer:
const persistConfig = {
key: 'root',
storage,
}
const persistedReducer = persistReducer(persistConfig, rootReducer)
let store = createStore(persistedReducer)
let persistor = persistStore(store)
Больше информации в их документе: https://github.com/rt2zz/редукс-персист.
Возможно, проверьте параметры хранения persistConfig, я никогда не делал этого в React Native, только в React.
Блестяще, сработало! Большое спасибо :)
Это сработало, но магазин все еще теряет значения после перезагрузки.