react-native - React Native Expo BackHandler 功能
问题描述
只能添加backhandler
到一个屏幕吗?
我使用底部标签和堆栈导航
tab : {
screen : stack A,
screen : stack B,
}
stack A : {
screen : screen A1,
screen : screen A2,
screen : screen A3
}
stack B : {
screen : screen B1,
screen : screen B2
}
我可以从屏幕 B1 导航到屏幕 A2 和屏幕 A1 到 A2。
如果我从屏幕 B1 导航到 A2 并在 A2 中按回,则屏幕 B1 应该聚焦,并且与屏幕 A1 到 A2 相同。
我尝试在屏幕 A2 中添加回处理程序,并从 B1 和 A1 传递标志以导航到相应的屏幕。
问题是当我在屏幕 A3 并按回时,无法重定向到屏幕 A2。
I need to handle back button only on screen A2.
解决方案
您可以BackHandler
使用react-navigation
like
BackHandler.js
在组件中创建
import { BackHandler } from "react-native";
import React from "react";
function ProfileScreen({ onBackPress }) {
React.useEffect(() => {
React.useCallback(() => {
BackHandler.addEventListener("hardwareBackPress", onBackPress);
return () =>
BackHandler.removeEventListener("hardwareBackPress", onBackPress);
}, []),
}, []);
}
用法如
import BackHandler from "./components";
renderBackHandler = () => {
return (
<BackHandler
onBackPress={() => {
this.handleBackPress();
return false;
}}
/>
);
}
render(){
// ...
{this.renderBackHandler()}
// ...
}
推荐阅读
- python - 如何在 python pandas 的整数列上使用 .map
- powershell - PowerShell:向自定义对象添加“行”
- node.js - WebSocket 在 15 - 20 分钟的数据流后停止接收数据 - NodeJS
- javascript - 向单元格添加点击功能(生命游戏)
- html - 使用 xPath 在文本中查找具有特定单词的跨度
- python - 如何先输入所有数据,然后在 python 中给出所有输出?
- c# - 如何对 webapi 控制器进行单元测试发回错误
- javascript - 获取父窗口上的引用/更新元素
- bixby - Bixby:无法打印消息
- regex - git-diff 刚刚超过匹配正则表达式的帅哥