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

从react-native-navigation迁移到react-navigation后页面空白求助

彻底移除react-native-navigation并恢复默认React Native根视图的解决方案

一、清理Android端残留配置

  • 检查MainActivity.java:确保onCreate方法中没有Navigation.initialize(this)或其他react-native-navigation相关初始化代码,恢复为ReactActivity的默认实现,仅保留super.onCreate(savedInstanceState)。
  • 检查AndroidManifest.xml:删除所有react-native-navigation相关配置,比如指定启动Activity为NavigationActivity的设置、com.reactnativenavigation.android.activity.DEFAULT_ROOT这类meta-data项。
  • 清理Gradle配置:
    • 项目根目录的build.gradle和app目录的build.gradle中,移除react-native-navigation的依赖声明(如implementation 'com.reactnativenavigation:react-native-navigation:xxx')。
    • settings.gradle中删除include ':react-native-navigation'和project(':react-native-navigation').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-navigation/lib/android/app/')这类配置。

二、清理iOS端残留配置(若涉及iOS开发)

  • 检查AppDelegate.m/AppDelegate.swift:删除所有react-native-navigation的初始化代码(如OC的[NavigationReactNative bootstrap:launchOptions]或Swift的对应实现),恢复原生React Native初始化流程:用RCTBridge初始化后创建RCTRootView并设置为窗口根视图。
  • 清理Pod依赖:移除Podfile中react-native-navigation的依赖项,执行pod install更新依赖,或手动删除项目中相关的库文件。

三、清理JS端残留代码

  • 检查index.js/App.js:删除所有import { Navigation } from 'react-native-navigation'导入语句,以及Navigation.registerComponent这类注册代码,仅保留AppRegistry.registerComponent(appName, () => App)的根组件注册逻辑。
  • 全局排查项目JS文件:移除所有react-native-navigation的使用(如导航跳转、组件注册逻辑),避免残留代码引发运行时错误导致白屏。

四、清理缓存并重新构建

  • 执行npx react-native clean清理React Native缓存。
  • Android端:进入android目录执行./gradlew clean,然后重新编译运行。
  • iOS端:在Xcode中清理Build文件夹(Product > Clean Build Folder),重新执行pod install后编译运行。
  • 重启Metro服务,确保加载的是最新代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 12:22:49