Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
React native createDrawerNavigator无法正常工作_React Native_Native Base_React Navigation Drawer - Fatal编程技术网

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上吗?你检查了吗?是的,检查了,抽屉没打开让我们看看。没有错误。当我点击打开抽屉的按钮时,什么也没发生