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

React Native Expo添加Drawer Navigation后仅显示启动页求助

解决React Native抽屉导航导入后应用卡在启动页的问题

常见排查与修复步骤

  • 补全依赖安装:
    仅导入@react-navigation/drawer但未安装配套依赖会导致静默加载失败,执行以下命令补全:

    npm install @react-navigation/drawer react-native-gesture-handler react-native-reanimated
    

    用Yarn则改为:

    yarn add @react-navigation/drawer react-native-gesture-handler react-native-reanimated
    
  • 配置Reanimated(关键操作):
    Reanimated需额外配置才能正常运行:

    1. 在babel.config.js中添加插件:
      module.exports = {
        presets: ['module:metro-react-native-babel-preset'],
        plugins: ['react-native-reanimated/plugin'],
      };
      
    2. 清理缓存并重启Metro服务:
      npx react-native start --reset-cache
      
    3. 重新编译Android项目:
      npx react-native run-android
      
  • 检查导航结构规范:
    确保createDrawerNavigator的使用符合React Navigation要求,示例正确结构如下:

    import { createDrawerNavigator } from '@react-navigation/drawer';
    import { NavigationContainer } from '@react-navigation/native';
    import HomeScreen from './HomeScreen';
    import SettingsScreen from './SettingsScreen';
    
    const Drawer = createDrawerNavigator();
    
    function App() {
      return (
        <NavigationContainer>
          <Drawer.Navigator initialRouteName="Home">
            <Drawer.Screen name="Home" component={HomeScreen} />
            <Drawer.Screen name="Settings" component={SettingsScreen} />
          </Drawer.Navigator>
        </NavigationContainer>
      );
    }
    
    export default App;
    

    若缺少NavigationContainer包裹,会导致导航无法初始化,直接卡在启动页。

  • 验证原生依赖链接:
    React Native 0.60+虽支持自动链接,但可手动确认:

    • 检查android/app/build.gradle是否包含Reanimated和Gesture Handler的依赖引用
    • 检查android/settings.gradle是否有对应项目的引入配置

额外排查方向

  • 关闭Debug模式测试:部分调试工具可能与导航库冲突,可打包release版本验证
  • 查看设备日志:用adb logcat查看Android设备的系统日志,可能找到命令行未输出的静默错误

内容的提问来源于stack exchange,提问作者rafiulah

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 11:40:40