You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native中SwitchNavigator报'undefined is not a function'错误求助

解决"undefined is not a function SwitchNavigator"错误(react-navigation 1.0.0-beta.15)

你的问题核心是在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:55:44