React Native应用中React Navigation底部标签栏不显示且无报错
解决React Native底部标签导航栏不显示的问题
你的问题核心在于:你已经定义了底部标签导航组件TabNavigator,但完全没把它集成到App的导航结构里。当前App.js里只有Stack导航,Dashboard是作为Stack的独立屏幕存在,底部标签栏根本没被渲染。
修复步骤:
- 在App.js中导入你写的
TabNavigator组件 - 将Stack导航里的
Dashboard屏幕替换为TabNavigator,这样当导航到原Dashboard路由时,会自动渲染带底部标签的导航结构。
修改后的App.js代码:
import React from 'react' import { Provider } from 'react-native-paper' import { NavigationContainer } from '@react-navigation/native' import { createStackNavigator } from '@react-navigation/stack' import firebase from 'firebase/app' import 'firebase/auth' import { theme } from './src/core/theme' import { AuthLoadingScreen, StartScreen, LoginScreen, RegisterScreen, ResetPasswordScreen, // 移除Dashboard的直接导入,它已在TabNavigator中定义 } from './src/screens' // 导入TabNavigator,注意路径要和你的文件位置匹配 import TabNavigator from './tabnavigator' import { FIREBASE_CONFIG } from './src/core/config' const Stack = createStackNavigator() if (!firebase.apps.length) { firebase.initializeApp(FIREBASE_CONFIG) } export default function App() { return ( <Provider theme={theme}> <NavigationContainer> <Stack.Navigator initialRouteName="AuthLoadingScreen" screenOptions={{ headerShown: false, }} > <Stack.Screen name="AuthLoadingScreen" component={AuthLoadingScreen} /> <Stack.Screen name="StartScreen" component={StartScreen} /> <Stack.Screen name="LoginScreen" component={LoginScreen} /> <Stack.Screen name="RegisterScreen" component={RegisterScreen} /> {/* 把原Dashboard屏幕替换为TabNavigator */} <Stack.Screen name="Dashboard" component={TabNavigator} /> <Stack.Screen name="ResetPasswordScreen" component={ResetPasswordScreen} /> </Stack.Navigator> </NavigationContainer> </Provider> ) }
额外注意:
- 确认
TabNavigator的导入路径正确,如果你的tabnavigator.js不在根目录,要调整路径(比如./src/navigation/tabnavigator) - 原
TabNavigator里已经包含Dashboard和Agencyhome,所以App.js无需再单独导入Dashboard - 当你的Auth逻辑跳转到
Dashboard路由时,底部标签导航栏就会自动显示
内容的提问来源于stack exchange,提问作者Medic305
相关产品推荐
相关产品推荐

