我们将这段代码添加到 react native 中的软件后退按钮按下和硬件后退按钮按下中。现在,在按下软件后退按钮的情况下,一切正常,但在硬件后退按钮的情况下,流程转到所需的代码,然后组件卸载。这是代码。
handleBackButtonClick = () => {
// console.log('this.props ', this.props);
const {navigation} = this.props;
const {index, routes} = this.props.navigation.dangerouslyGetState();
console.log("routes are ...",routes);
let previousRoute;
if(routes && routes.length >1){
previousRoute = routes[index - 1].name;
}
if (previousRoute === 'BENEFITS_SCHEDULED_TESTS') {
navigation.goBack();
} else {
navigation.dispatch(
StackActions.replace(Routes.DASH_STACK, {
screen: Routes.BENEFITS_TAB,
params: {
screen: Routes.MY_ORDERS,
},
}),
);
}
};
我的订单页面中的路由,即使在硬件按下的情况下,我也希望屏幕在其中导航。 0:{名称:“PURCHASED_PLANS_SCREEN”,键:“PURCHASED_PLANS_SCREEN-uGn3VLNPHiBMjbObcsk50”,参数:未定义} 1:{名称:“MY_ORDERS”,键:“MY_ORDERS-Cb5N0-s_4oVEZXNjc90s4”,参数:未定义} 长度:2 这种奇怪行为背后的原因是什么?