使用Expo开发的React Native Navigation打包后白屏问题求助
问题排查与解决方案
1. 修复NavigationContainer缺失导入的问题
你的代码中使用了<NavigationContainer>组件,但未从@react-navigation/native导入它——这是导致打包后白屏的核心原因。模拟器环境可能存在一定容错性,但生产打包后的运行时会严格校验依赖,缺失导入会直接引发致命错误,导致组件无法渲染。
修改导入代码,添加缺失的NavigationContainer:
import React, {useEffect} from "react"; import {Text, View} from "react-native"; import Test from "./Test.js"; import { createNativeStackNavigator } from '@react-navigation/native-stack'; // 新增这行导入 import { NavigationContainer } from '@react-navigation/native';
2. 检查Test组件的合法性
你的初始路由是Test组件,如果该组件存在错误(比如未正确导出、有语法错误或运行时异常),会导致应用启动失败,直接白屏且无法触发后续组件的alert。
- 确认
Test.js使用export default正确导出组件 - 检查
Test组件内是否有未处理的异步错误、无效DOM操作或依赖缺失
3. 清理缓存后重新打包
打包缓存可能残留旧的错误代码,执行以下命令清理缓存并重新打包:
expo r -c expo build:android # 对应iOS则使用 expo build:ios
4. 查看生产环境错误日志
通过日志定位具体崩溃点:
- Android:使用
adb logcat *:E查看设备错误日志 - iOS:通过Xcode的Organizer查看应用运行日志
5. 校验依赖版本兼容性
确认react-navigation相关依赖版本与当前使用的Expo SDK版本兼容,版本不匹配可能导致打包后出现隐性运行错误。
内容的提问来源于stack exchange,提问作者Paweł
相关产品推荐
相关产品推荐

