Я пытаюсь разработать приложение React Native и использую Redux persist для сохранения пользовательских настроек (выбранного языка и выбранной начальной страницы). Для навигации я использую навигацию по ящикам.
Сохранение пользовательских настроек в постоянном хранилище работает таким образом, что после перезагрузки приложения и открытия страницы настроек выбранный язык и начальная страница сохраняются последними. Однако я не могу показать выбранную пользователем начальную страницу в качестве первой. Кажется, что вместо сохраненного значения всегда используется начальное значение «Настройки» редуктора (например, «Редактировать»). Значение для открытие страницы читается до завершения регидратации?
Я пробовал несколько вещей, но ничего не работает. Как я могу заставить приложение отображать выбранную пользователем начальную страницу в качестве первой страницы?
// the container with initialRouteName
let initialPage = store.getState().settings.openingPage
const AppMainDrawerNavigator = createDrawerNavigator({
Settings: Settings,
Edit: Edit,
Read: Read,
Search: Search,
Share: Share,
},
{
initialRouteName: initialPage,
drawerBackgroundColor: '#785454',
drawerType: 'slide',
drawerWidth: Dimensions.get('window').width * 0.8,
contentComponent: HamburgerMenu,
})
const AppNavigatorContainer = createAppContainer(AppMainDrawerNavigator)
// App component
const App = () => {
return (
<Provider store={store}>
<PersistGate loading={null} persistor={persistor}>
<AppNavigatorContainer/>
</PersistGate>
</Provider>
)
}
export default App