我不明白问题出在哪里,首先我使用的是react-native-drawer v4,但是在我尝试使用‘@react- v5 /drawer’之后,它不起作用。一个能帮我改正错误的人。我将expo-CLI用于react原生应用程序。
在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'
}
));发布于 2021-05-04 02:57:41
面对同样的错误。解决了。试试这个:
npm install @react-navigation/native或
yarn add @react-navigation/native@next或
yarn add @react-navigation/nativehttps://stackoverflow.com/questions/67156498
复制相似问题