我将 react-native 项目的 react-navigation 从 v2.x 更新到 v3.x。对于 v2.x,我在 root 处渲染了这个:
const AppNavigator = createStackNavigator({...})
const App = () => <AppNavigator persistenceKey={"NavigationState"} />;
export default App;
我需要保持状态,这就是我使用的原因 persistenceKey
对于 react-navigation 的 v3.x,需要一个应用程序容器,但是我在弄清楚如何实现相同的状态持久性时遇到了问题。
这是我使用 v3.x 的新代码
const AppNavigator = createStackNavigator({...})
const AppContainer = createAppContainer(AppNavigator)
const App = () => <AppContainer />;
export default App;
我如何以这种方式保持状态?
谢谢
编辑:
我试过这个:
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
蛊毒传说
陪伴而非守候
隔江千里
相关分类