React native createDrawerNavigator无法正常工作
我试了很多方法来打开抽屉,但都不管用。我不知道如何像我一样组合导航器,一个是React native createDrawerNavigator无法正常工作,react-native,native-base,react-navigation-drawer,React Native,Native Base,React Navigation Drawer,我试了很多方法来打开抽屉,但都不管用。我不知道如何像我一样组合导航器,一个是createStackNavigator,第二个是createDrawerNavigator。请检查我的代码,如果有任何错误,让我知道,否则提供给我一个链接或代码来实现。谢谢 App.js import React, { Component } from 'react'; import { createAppContainer } from 'react-navigation'; import { createStack
createStackNavigator
,第二个是createDrawerNavigator
。请检查我的代码,如果有任何错误,让我知道,否则提供给我一个链接或代码来实现。谢谢
App.js
import React, { Component } from 'react';
import { createAppContainer } from 'react-navigation';
import { createStackNavigator } from 'react-navigation-stack';
import LoginScreen from './src/screens/LoginScreen';
import SignupScreen from './src/screens/SignupScreen';
import DashboardScreen from './src/screens/DashboardScreen';
import CaseListingScreen from './src/screens/CaseListingScreen';
import { createDrawerNavigator, DrawerItems } from "react-navigation-drawer";
import SideBar from './src/SideBar';
const DrawerNavigator = createDrawerNavigator({
Home: {
screen: DashboardScreen,
},
Cases: {
screen: CaseListingScreen,
navigationOptions: {
header: null
}
}
},
{
initialRouteName: 'Home',
}
);
const AppNavigator = createStackNavigator({
Dashboard: {
screen: DashboardScreen,
navigationOptions: {
header: null
}
},
Cases: {
screen: CaseListingScreen,
navigationOptions: {
header: null
}
},
Login: {
screen: LoginScreen,
navigationOptions: {
header: null
}
},
Signup: {
screen: SignupScreen,
navigationOptions: {
header: null
}
}
});
export default createAppContainer(AppNavigator, DrawerNavigator);
DashboardScreen.js
export default class DashboardScreen extends Component {
static navigationOption = {
drawerLabel: 'Home'
}
render() {
return (
<Container>
<Appbar.Header theme={{ colors: { primary: '#b33f3f' } }}>
<Appbar.Action icon="menu" onPress={() => this.props.navigation.navigate('DrawerOpen')} />
<Appbar.Content
title="Manage My Case"
subtitle="Dashboard"
/>
</Appbar.Header>
</Container>
);
}
}
导出默认类仪表板屏幕扩展组件{
静态导航选项={
抽屉标签:“家”
}
render(){
返回(
this.props.navigation.navigate('drawerropen')}/>
);
}
}
在您的导出默认的createAppContainer(AppNavigator、DroperNavigator)代码>,您应该将抽屉导航器作为应用程序容器,而不是与应用程序导航器一起使用。
createAppContainer只包含1个参数,因此在应用程序容器中传递DrawerNavigator,如果要在drawer navigator中使用stackNavigator,只需将DrawerNavigator创建为
const AppNavigator = createStackNavigator({
Dashboard: {
screen: DashboardScreen,
navigationOptions: {
header: null
}
},
Cases: {
screen: CaseListingScreen,
navigationOptions: {
header: null
}
},
Login: {
screen: LoginScreen,
navigationOptions: {
header: null
}
},
Signup: {
screen: SignupScreen,
navigationOptions: {
header: null
}
}
});
const DrawerNavigator = createDrawerNavigator({
Home: {
screen: DashboardScreen,
},
Cases: {
screen: CaseListingScreen,
navigationOptions: {
header: null
}
},
AppScreen:{
screen:AppNavigator // this is new , im adding stacknavigaoter to your drawer.
}
},
{
initialRouteName: 'Home',
}
);
export default createAppContainer(DrawerNavigator);
希望这会有所帮助,否则请不要怀疑。在stacknavigator中提及您的抽屉导航器,如下所示
const myDrawerNavigator = createDrawerNavigator(
{
Home: { screen: YOUR_HOME },
},
{
contentComponent: SideMenu,
drawerWidth: Dimensions.get('window').width * 0.75
}
)
const RootStack = createStackNavigator({
SplashScreen: {
screen: SplashScreen,
navigationOptions: {
header: null,
},
},
SomeName: {
screen: myDrawerNavigator ,
navigationOptions: {
header: null,
},
},
})
根据您的屏幕名称修改上述代码,它将正常工作…
我希望这有帮助,谢谢……:) 你能分享一个expo链接,让我试试吗?你的意思是在snack.expo.io上吗?你检查了吗?是的,检查了,抽屉没打开让我们看看。没有错误。当我点击打开抽屉的按钮时,什么也没发生