为什么在 React-Native 中使用 Drawer-Navigator 导航到另一个 Navigator 后会出现黑屏?
Why do I get a blank screen after using Drawer-Navigator in React-Native to navigate to another Navigator?
编辑 小吃:https://snack.expo.io/rJfyQLhJ8
我正在使用一些非常过时的课程 material 来学习 React Native。发生了一些重大变化,我正在努力解决问题。这是我的主要组件,有几个导航器。
菜单导航器:
const MenuNavigator = createStackNavigator(
{
Menu: { screen: Menu },
Dishdetail: { screen: Dishdetail }
},
{
initialRouteName: 'Menu',
defaultNavigationOptions: {
flex: 1,
headerStyle: {
backgroundColor: '#512DA8',
},
headerTintColor: '#fff',
headerTitleStyle: {
color: '#fff'
}
}
})
首页导航
const HomeNavigator = createStackNavigator(
{
Home: { screen: Home }
},
{
defaultNavigationOptions: {
headerStyle: {
backgroundColor: '#512DA8',
},
headerTintColor: '#fff',
headerTitleStyle: {
color: '#fff'
}
}
})
最后是 MainNavigator
const MainNavigator = createDrawerNavigator(
{
Home:
{
screen: HomeNavigator,
navigationOptions: {
title: 'Home',
drawerLabel: 'Home'
}
},
Menu:
{
screen: MenuNavigator,
navigationOptions: {
title: 'Menu',
drawerLabel: 'Menu'
},
}
},
{
drawerBackgroundColor: '#D1C4E9'
});
在此之后,我将其包装在 createAppContainer 中并在渲染方法中使用它。
const App = createAppContainer(MainNavigator);
class Main extends Component {
render() {
return (
<View style={{ flex: 1, paddingTop: Platform.OS === 'ios' ? 0 : Expo.Constants.statusBarHeight }}>
<App />
</View>
);
}}
应用程序构建成功,我可以访问侧边抽屉,但是当我点击菜单项时,它导航时没有抛出错误,但显示 空白屏幕 。如果我导航回主屏幕,它会正确显示它,但它会显示一个空白屏幕而不是菜单 screen/component。为什么是这样 ?我正在使用 OnePlus5t。
这可能是一个错误。它在您使用 android 主页 UI 按钮导航到主屏幕并返回到应用程序后工作。似乎从那时起工作正常。
编辑 小吃:https://snack.expo.io/rJfyQLhJ8
我正在使用一些非常过时的课程 material 来学习 React Native。发生了一些重大变化,我正在努力解决问题。这是我的主要组件,有几个导航器。
菜单导航器:
const MenuNavigator = createStackNavigator(
{
Menu: { screen: Menu },
Dishdetail: { screen: Dishdetail }
},
{
initialRouteName: 'Menu',
defaultNavigationOptions: {
flex: 1,
headerStyle: {
backgroundColor: '#512DA8',
},
headerTintColor: '#fff',
headerTitleStyle: {
color: '#fff'
}
}
})
首页导航
const HomeNavigator = createStackNavigator(
{
Home: { screen: Home }
},
{
defaultNavigationOptions: {
headerStyle: {
backgroundColor: '#512DA8',
},
headerTintColor: '#fff',
headerTitleStyle: {
color: '#fff'
}
}
})
最后是 MainNavigator
const MainNavigator = createDrawerNavigator(
{
Home:
{
screen: HomeNavigator,
navigationOptions: {
title: 'Home',
drawerLabel: 'Home'
}
},
Menu:
{
screen: MenuNavigator,
navigationOptions: {
title: 'Menu',
drawerLabel: 'Menu'
},
}
},
{
drawerBackgroundColor: '#D1C4E9'
});
在此之后,我将其包装在 createAppContainer 中并在渲染方法中使用它。
const App = createAppContainer(MainNavigator);
class Main extends Component {
render() {
return (
<View style={{ flex: 1, paddingTop: Platform.OS === 'ios' ? 0 : Expo.Constants.statusBarHeight }}>
<App />
</View>
);
}}
应用程序构建成功,我可以访问侧边抽屉,但是当我点击菜单项时,它导航时没有抛出错误,但显示 空白屏幕 。如果我导航回主屏幕,它会正确显示它,但它会显示一个空白屏幕而不是菜单 screen/component。为什么是这样 ?我正在使用 OnePlus5t。
这可能是一个错误。它在您使用 android 主页 UI 按钮导航到主屏幕并返回到应用程序后工作。似乎从那时起工作正常。