【发布时间】:2021-04-19 05:41:20
【问题描述】:
我不明白问题出在哪里,我首先使用的是 react-native-drawer v4,但在我尝试使用 '@react-navigation/drawer' v5 但它不起作用之后。有人可以帮助我解决我正在做的错误。 我正在为 react-native 应用程序使用 expo-CLI。
继续使用 v5 的原因我觉得添加自定义按钮或选项很容易,因为我没有找到在 v4 中添加自定义抽屉选项的人。
import React from 'react';
// import { createDrawerNavigator, DrawerContentScrollView, DrawerItemList, DrawerItem, } from 'react-navigation-drawer';
import {createDrawerNavigator,DrawerContentScrollView,DrawerItemList, DrawerItem,} from '@react-navigation/drawer';
const AuthNavigation = createDrawerNavigator({
Login:{screen:Login},
});
function CustomDrawerContent(props) {
return (
<DrawerContentScrollView {...props}>
<DrawerItemList {...props} />
<DrawerItem label="logout" onPress={() => alert('Link to help')} />
</DrawerContentScrollView>
);
}
const Drawer = createDrawerNavigator();
function MyDrawer() {
return (
<Drawer.Navigator drawerContent={props => <CustomDrawerContent {...props} />}>
<Drawer.Screen name="Users" component={AllUsers} />
<Drawer.Screen name="Data" component={AllData} />
<Drawer.Screen name="Add User" component={AddUser} />
<Drawer.Screen name="Uploader" component={UploadFile} />
</Drawer.Navigator>
);
}
// const AppNavigation = createDrawerNavigator({
// Add_User:{
// screen: AddUser,
// navigationOptions:{
// drawerLabel: 'Add User',
// }
// },
// Data:{screen: AllData},
// Users:{screen: AllUsers},
// Uploader:{screen: UploadFile},
// })
const AuthLoadScreen = ({navigation}) =>{
const _loadData= async ()=>{
const isLoggedIn = await AsyncStorage.getItem('isLoggedIn');
navigation.navigate(isLoggedIn !== '1' ? 'Auth':'App' );
}
_loadData();
return(
<View>
<ActivityIndicator/>
<StatusBar barStyle="default" />
</View>
);
}
export default createAppContainer(createSwitchNavigator(
{
AuthLoading:AuthLoadScreen,
App:MyDrawer,
Auth:AuthNavigation
},{
initialRouteName: 'AuthLoading'
}
));
【问题讨论】:
-
您正在混合使用导航 4 和 5,如果您使用 V5,则应使用导航容器
标签: android reactjs react-native react-native-navigation mobile-development