react-native - 对于 react-navigation v6,getStateForAction 未定义
问题描述
目前我正在将我react-navigation
的从 v4 升级到 v6。但是我在为我的应用程序获取初始状态时遇到了问题。
// AppNavigation.js
// All the screens and packages are imported
function switchNavigator() {
return (
<NavigationContainer>
<Stack.Navigator initialRouteName="loginFlow">
<Stack.Screen name="loginFlow" component={loginFlow} />
<Stack.Screen name="mainFlow" component={mainFlow} />
</Stack.Navigator>
</NavigationContainer>
);
}
export default switchNavigator;
现在我使用下面的代码来获取初始状态并设置它,如果它在我的 redux 导航中未定义。
import AppNavigation from '../Navigation/AppNavigation';
export const reducer = (state, action) => {
const newState = AppNavigation.router.getStateForAction(action, state);
return newState || state;
};
但我收到了这个错误
TypeError: undefined is not an object (evaluating '_AppNavigation.default.router.getStateForAction')
解决方案
这是来自 React Navigation Library 的 Awesome 功能,我们可以使用导航选项而无需像组件那样访问 Props。
请参考 React Navigation 中的以下文档页面,希望它可以帮助您实现。