【发布时间】:2019-08-27 21:10:26
【问题描述】:
我正在使用 React Navigation 3 升级我的 React Native 应用程序的路由器配置,现在很多事情都得到了改进,但我不明白为什么当我在 Android 中按下后退按钮时,没有将我发送到上一个视图并且而是把我送到家。
我的路线
const drawerConfig = {
initialRouteName: 'Home',
contentComponent: SideMenu,
drawerWidth: width,
}
const MainDrawerNavigator = createDrawerNavigator(
{
Home: {
screen: Home,
},
Company: {
screen: Company,
},
Gifts: {
screen: Gifts,
},
Jobs: {
screen: Jobs,
},
Job: {
screen: Job,
},
Contact: {
screen: Contact
}
},
drawerConfig,
);
const InitialStack = createStackNavigator(
{
Menu: {
screen: Menu,
path: 'menu/',
}
},
{
initialRouteName: 'Menu',
headerMode: 'none',
}
);
const SwitchNavigator = createSwitchNavigator(
{
Init: InitialStack,
App: MainDrawerNavigator,
},
{
initialRouteName: 'Init',
}
);
const AppContainer = createAppContainer(SwitchNavigator);
export default AppContainer;
如果我这样做:打开抽屉,打开作业,然后按下作业按钮以加载作业视图,流程运行良好,但如果我在作业视图中按下后退按钮,则显示的不是作业而是主页。
我正在使用this.props.navigation.navigate('...') 导航,因为推送不起作用。
你知道为什么吗?
我正在使用 react-navigation 3.5.1 和 react-native 0.59.3
【问题讨论】:
-
大部分时间你要手动处理
android back button...因为仅仅依赖默认行为是不够的 -
我以为默认行为是总是弹出到上一个屏幕,但似乎我错了。
标签: android reactjs react-native react-navigation