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閱讀 173,556評論 25 708
  • 發現 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,255評論 4 61
  • 10.27日 周五 晴 慶慶媽媽第59篇 天氣漸漸變涼,看著上次因為帶著二寶送慶慶,導致二寶生病,我心里很...
    史響慶閱讀 157評論 0 2
  • 借我一輛飛機,裝滿我的夢想,自由飛翔 借我一雙翅膀,飛向天空 借我一個空間,填滿我的恐慌 借我一股空氣,讓我好好呼...
    愛三國的我閱讀 164評論 0 0
  • 昨天發生了好多事,感覺文字已經無法詳盡表達了必須要畫下來~ 早上6點起床7點去跑步,下午上橙子的課并繪制思維導圖,...
    wendyy閱讀 100評論 0 0