我想在我的React Native应用程序中实现一个抽屉导航。我的应用程序的设置如下:
1.我有这将是一旦你打开应用程序显示入职屏幕。然后我会移动到“主页”屏幕。
1.我希望抽屉只能在主屏幕上打开,而不是在载入屏幕上打开。
下面是我的代码:App.js
``` import React, {useEffect} from 'react';
import { MainNavigation } from './src/navigation';
import SplashScreen from 'react-native-splash-screen'
import { createNativeStackNavigator } from '@react-navigation/native-stack';
const Stack = createNativeStackNavigator();
const App = ()=> {
useEffect(() => {
SplashScreen.hide();
}, []);
return (<MainNavigation/>);
}
export default App;
字符串
**MainNavigation.jsx**文件
import { OnboardingScreen } from '../screens';
import { NavigationContainer } from '@react-navigation/native';
import { createNativeStackNavigator } from '@react-navigation/native-stack';
import { DrawerNavigator } from './DrawerNavigator';
const Stack = createNativeStackNavigator();
export const MainNavigation = () => {
return (
<NavigationContainer>
<Stack.Navigator initialRouteName='Onboarding'>
<Stack.Screen name="Onboarding" options={{headerShown: false}} component={OnboardingScreen}/>
<Stack.Screen name="Home" options={{headerShown:"false"}} component={DrawerNavigator} />
</Stack.Navigator>
</NavigationContainer>
)
}
型
**DrawerNavigator.jsx**文件
import React from 'react'
import { createDrawerNavigator } from '@react-navigation/drawer';
import { HomeScreen } from '../screens';
const Drawer = createDrawerNavigator();
export const DrawerNavigator = () => {
return (
<Drawer.Navigator>
<Drawer.Screen name="Home1" component={HomeScreen} />
</Drawer.Navigator>
)
}
const styles = StyleSheet.create({})
型
但我一直收到错误消息
TypeError:无法读取未定义的属性“MainNavigation”
此错误位于:在App中在RCTView(由View创建)中在View(由AppContainer创建)中在RCTView(由View创建)中在View(由AppContainer创建)中在AppContainer中在CSR(RootComponent)中,js引擎:爱马仕
我该如何解决这个问题?我的设置是否正确?
1条答案
按热度按时间7fhtutme1#
你没有正确导入主导航组件。这就是这个错误的建议。我猜你在src文件夹内的导航文件夹中有这个。所以它应该被导入为:
从“./src/navigation/MainNavigation”导入{ MainNavigation };