Я обновил реагирующую навигацию для реактивного проекта с v2.x до v3.x Для v2.x это было отрисовано в корне:
const AppNavigator = createStackNavigator({...})
const App = () => <AppNavigator persistenceKey={"NavigationState"} />;
export default App;
Мне нужно сохранить состояние, поэтому я использовал persistenceKey
Для v3.x реагирующей навигации требуется контейнер приложения, но у меня возникают проблемы с выяснением, как реализовать такое же сохранение состояния.
Это мой новый код с v3.x
const AppNavigator = createStackNavigator({...})
const AppContainer = createAppContainer(AppNavigator)
const App = () => <AppContainer />;
export default App;
Как мне сохранить состояние таким образом?
Спасибо
EDIT:
Я пробовал это:
const AppNavigator = createStackNavigator({...})
const persistenceKey = "persistenceKey"
const persistNavigationState = async (navState) => {
try {
await AsyncStorage.setItem(persistenceKey, JSON.stringify(navState))
} catch(err) {
// handle the error according to your needs
}
}
const loadNavigationState = async () => {
const jsonString = await AsyncStorage.getItem(persistenceKey)
return JSON.parse(jsonString)
}
const AppNavigationPersists = () => <AppNavigator
persistNavigationState={persistNavigationState}
loadNavigationState={loadNavigationState}
/>
const AppContainer = createAppContainer(AppNavigationPersists)
export default AppContainer;
но я получаю эту ошибку:
Cannot read property 'getStateForAction' of undefined