从react-native-navigation迁移到react-navigation后页面空白求助
一、清理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
相关产品推荐
相关产品推荐

