Expo React Native Navigation问题:应用屏幕卡在默认Logo界面
你遇到的问题根源在于导航配置里的一个关键错误——Stack.Group并不支持initialRouteName属性,这导致你的导航系统无法正确初始化到指定的注册页面,最终卡在了应用启动的默认Logo界面。
问题代码分析
你当前的代码把路由初始化配置放在了错误的层级:
<Stack.Group initialRouteName="Registrar" screenOptions={{ headerShown : false }}>
Stack.Group的作用只是对屏幕进行分组、共享统一的屏幕配置,它没有初始化路由的能力,initialRouteName这个属性是Stack.Navigator专属的配置项。
修复后的完整代码
把Stack.Group替换为Stack.Navigator,并将初始化配置移到正确的层级:
import React from 'react' import Registrar from './pantallas/Registrar'; //注册页面 import Principal from './pantallas/Principal'; //登录后主页面 import { NavigationContainer } from '@react-navigation/native'; import { createNativeStackNavigator } from "@react-navigation/native-stack"; export default function App() { const Stack = createNativeStackNavigator(); return( <NavigationContainer> {/* 用Stack.Navigator代替Stack.Group,承担路由初始化职责 */} <Stack.Navigator initialRouteName="Registrar" screenOptions={{ headerShown : false }}> <Stack.Screen name="Registrar" component={Registrar} /> <Stack.Screen name="Principal" component={Principal} /> </Stack.Navigator> </NavigationContainer> ) };
额外排查点(如果修复后仍有问题)
如果修改后还是卡在Logo界面,可以检查以下几点:
- 确认
Registrar组件本身无错误:比如是否存在语法错误、未导入的依赖,或者组件内部的异步操作(如网络请求)阻塞了渲染。 - 清除Expo缓存:按下模拟器/真机上的
r键重启应用,或者在终端执行expo start -c清除缓存后重新启动项目。 - 检查组件路径:确保
./pantallas/Registrar和./pantallas/Principal的路径拼写正确,对应文件确实存在。
内容的提问来源于stack exchange,提问作者Pepopig
相关产品推荐
相关产品推荐

