reactjs - 回到Android中处理硬件后退按钮的上一条路线
问题描述
我正在使用此代码(此处)来处理 Android 中的硬件后退按钮。
我已经嵌套了 Route 并且在此代码中,当您单击后退按钮时,转到initialRoute
.
我的路线是这样的: Home => PoolList => PoolDetails => Cart
在Cart
Route 中,通过单击 Back 按钮,返回Home
。我想支持如:
Home <= PoolList <= PoolDetails <= Cart
如何更改此代码?
import React from "react";
import { BackHandler } from "react-native";
import { addNavigationHelpers, NavigationActions, DrawerNavigator } from "react-navigation";
const AppNavigation = DrawerNavigator(
{
Home: { screen: HomeScreen },
PoolList: { screen: PoolListScreen },
PoolDetails: { screen: PoolDetailsScreen },
Cart: { screen: CartScreen },
},
{
contentComponent: props => <SideBar {...props} />,
drawerPosition: 'right'
}
);
class ReduxNavigation extends React.Component {
componentDidMount() {
BackHandler.addEventListener("hardwareBackPress", this.onBackPress);
}
componentWillUnmount() {
BackHandler.removeEventListener("hardwareBackPress", this.onBackPress);
}
onBackPress = () => {
const { dispatch, nav } = this.props;
if (nav.index === 0) {
return false;
}
dispatch(NavigationActions.back());
return true;
};
render() {
const { dispatch, nav } = this.props;
const navigation = addNavigationHelpers({
dispatch,
state: nav,
addListener,
});
return <AppNavigation navigation={navigation} />;
}
}
解决方案
推荐阅读
- java - JTree 中的 JCheckBox 不会抛出其 ActionListener
- javascript - ValidationAttribute 是否应该有一条错误消息?
- javascript - 将字符串解析为 xml 时丢失了一些内容
- .net - $.connection.hub.start().done() 上的错误 500
- php - 从 Google My Business 获取 PHP 的营业时间
- ruby-on-rails - 将甜蜜警报绑定到动态添加的元素
- python-3.7 - 有什么办法可以解决argv解包问题
- python - 如何根据特定条件(包括 DateTime)映射来自多个 Pandas Dataframe 的值?
- sql - 使用 NOT EXISTS 重写查询的指南
- go - 如何使用 shopify sarama 通过抵消来处理消费者恢复