当前位置: 首页 > news >正文

RN—Android 物理返回键监听

A → B

使用 navigator 导航,用 goBack() 返回的时候传递参数

A 页面

this.props.navigation.navigate("B", {
                            callBack: (data) => {       //回调函数
                                this.setState({
                                    studentCount: data
                                })
                            }
                        });

B 页面

  onPress()=>{
        this.props.navigation.state.params.callBack(data)
        this.props.navigation.goBack();
        }

在使用 Android 机的时候,点击物理返回键的时候,并不会走 navigator ,所以需要加一个返回键的事件监听

1.在生命周期中监听

componentDidMount() {
        BackHandler.addEventListener('hardwareBackPress', this.onBackAndroid);
    }

  componentWillUnmount() {
        BackHandler.removeEventListener('hardwareBackPress', this.onBackAndroid);
    }

    onBackAndroid = () => {
        this.props.navigation.goBack();
        this.props.navigation.state.params.callBack(data)
        return true
    }

2.待测试

转载于:https://www.cnblogs.com/gemeiyi/p/9988260.html

相关文章:

  • 名企6年Java程序员的工作总结,写给在迷茫中的你!
  • python的单、双、多分支流程控制
  • 浏览器被2345主页劫持
  • flex布局学习1
  • windows系统-phpstudy升级mysql8.0.12安装教程及修改密码和安装注意事项
  • laravel 用artisan创建自己的模板
  • 老鸟程序员才知道的40个小技巧
  • 前端性能优化——回流与重绘
  • 新手搭建网站的主要流程
  • python爬虫笔记-day1
  • 简便安装mysql数据库的方法
  • Scrum立会报告+燃尽图(十一月二十五日总第三十三次):展示博客
  • Android 性能优化的方面方面都在这儿
  • 通过几道题目学习二叉搜索树
  • 设计模式 开闭原则
  • “大数据应用场景”之隔壁老王(连载四)
  • Computed property XXX was assigned to but it has no setter
  • Debian下无root权限使用Python访问Oracle
  • Effective Java 笔记(一)
  • gcc介绍及安装
  • isset在php5.6-和php7.0+的一些差异
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • Redash本地开发环境搭建
  • spring security oauth2 password授权模式
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • VirtualBox 安装过程中出现 Running VMs found 错误的解决过程
  • vue--为什么data属性必须是一个函数
  • 笨办法学C 练习34:动态数组
  • 技术:超级实用的电脑小技巧
  • 跨域
  • 如何合理的规划jvm性能调优
  • 设计模式 开闭原则
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • 想写好前端,先练好内功
  • 学习Vue.js的五个小例子
  • 移动端解决方案学习记录
  • 优秀架构师必须掌握的架构思维
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • ​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • #Ubuntu(修改root信息)
  • #传输# #传输数据判断#
  • $ is not function   和JQUERY 命名 冲突的解说 Jquer问题 (
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (PyTorch)TCN和RNN/LSTM/GRU结合实现时间序列预测
  • (每日持续更新)jdk api之FileReader基础、应用、实战
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .NET Conf 2023 回顾 – 庆祝社区、创新和 .NET 8 的发布
  • .NET 解决重复提交问题
  • .NET学习全景图
  • .vollhavhelp-V-XXXXXXXX勒索病毒的最新威胁:如何恢复您的数据?
  • @ 代码随想录算法训练营第8周(C语言)|Day53(动态规划)
  • @RequestMapping 的作用是什么?
  • @vue/cli脚手架