react-native 返回键

这里主要介绍两种返回模式,一种是导航栏中的返回按钮,一种是监听android手机的返回键。这两种无论是哪种返回方式都需要使用
Navigator。

this.props.nav.pop();

1、监听android原生的返回键:BackAndroid

BackAndroid.addEventListener('hardwareBackPress',  ()=> {
    this.props.nav.pop(); // 返回上一页
    return true;
});

2、点击导航栏中的返回按钮返回。
在这里我将导航栏包装成了一个组件,所以在调用导航栏组件时需将 Navigator 传递过去:

图片.png

子组件导航栏中的返回键点击事件触发返回到上一页:

图片.png

像上面的一种返回方法,即监听android的返回键进行返回,我们如果在每一个字页面中都写这么一段代码着实过于冗余,所以我们可以去建一个 BaseComponent,在BaseComponent中 extents React.Component , 并在里面写上对于android返回键的监听,这样,需要监听返回键的子页面就可以 extends BaseComponent。

实现代码如下:
BaseComponent.js

import React, { Component } from 'react';
import { BackAndroid } from 'react-native';
class BaseComponent extends Component {
    constructor(props) {
        super(props);
        BackAndroid.addEventListener('hardwareBackPress',  ()=> {
            this.props.nav.pop();
            return true;
        });
    }
}
module.exports = BaseComponent;   // 这里需用这种方法,否则会报 super 的错

使用的时候先将其导进来:

import BaseComponent from '../../base/BackComponent';

export default class MapView extends BaseComponent {
    constructor(props) {
        super(props);
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,764评论 25 709
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,239评论 4 61
  • 10.27日 周五 晴 庆庆妈妈第59篇 天气渐渐变凉,看着上次因为带着二宝送庆庆,导致二宝生病,我心里很...
    史响庆阅读 1,150评论 0 2
  • 借我一辆飞机,装满我的梦想,自由飞翔 借我一双翅膀,飞向天空 借我一个空间,填满我的恐慌 借我一股空气,让我好好呼...
    爱三国的我阅读 1,079评论 0 0
  • 昨天发生了好多事,感觉文字已经无法详尽表达了必须要画下来~ 早上6点起床7点去跑步,下午上橙子的课并绘制思维导图,...
    wendyy阅读 747评论 0 0