React Native中SwitchNavigator报'undefined is not a function'错误求助
你的问题核心是在react-navigation 1.x版本中,并没有直接的SwitchNavigator构造函数——你需要使用createSwitchNavigator方法来创建切换导航器,这就是导致"undefined is not a function"错误的原因。
修复步骤:
确认导入语句
首先确保你从react-navigation中正确导入所需的导航器创建方法:import { createSwitchNavigator, StackNavigator, TabNavigator } from 'react-navigation';修改导航器创建代码
把原来直接调用SwitchNavigator的代码替换为createSwitchNavigator,修改后的AppNavigator部分如下:const AppNavigator = createSwitchNavigator( { NonAuthNav: NonAuthNavigator, AuthMainNav: AuthMainNavigator, }, { initialRouteName: 'NonAuthNav', headerMode: "none" } );
错误原因说明
在react-navigation 1.x的beta版本中,切换导航器的标准创建方式是createSwitchNavigator,SwitchNavigator这个直接调用的写法是后续版本才调整的。你的代码调用了不存在的函数,自然会抛出"undefined is not a function"的错误。
关于你提到的2.0.x版本Redux问题
你提到的Cannot listen for a key that isn't associated with a Redux store错误,是2.x版本中导航与Redux集成逻辑变更导致的,需要先正确初始化createReactNavigationReduxMiddleware才能解决。不过既然你暂时不想升级版本,上面的修复已经能解决当前的导航器创建问题。
内容的提问来源于stack exchange,提问作者Safa
相关产品推荐
相关产品推荐

