rn滑動返回頁面監聽


開發rn的同學都已經知道這個問題很坑了,真的很難弄,網上的方法嘗試過很多,返回的的時候回調,是用的最多的,最開始我也是用的這種方式,但是滑動返回的時候監聽不到。並且用起來也比較麻煩,不但需要在當前頁面做監聽(需要返回刷新的頁面),還需要調用返回函數的頁面,去調用刷新的方法。今天介紹一種,直接對當前頁面監聽的方法,好處不多說,直接上代碼。

先看react-navigation官網的api


api地址地址

舉個栗子

場景:A頁面跳轉到B頁面,然后從B頁面返回A頁面,A頁面需要刷新

A頁面

// 省略引入,以及render以外的代碼

refrensh(e) {
    if(!e.state.params.onLoad) return;
    this.props.navigation.setParams({ onLoad: false })
    console.log(e.state.params);
    // 執行需要刷新的邏輯
}
render() {
    return (
        <View>
            <NavigationEvents
              // 當頁面獲得焦點的時候,調用刷新的函數(也就是從B頁面返回的時候,會觸發這個監聽函數)
              onWillFocus={this.refrensh.bind(this)}
              onWillBlur={(e) => {  
                // 增加onLoad的作用
                // 有可能當前頁面返回的時候不需要刷新,就把onLoad設置成false
                this.props.navigation.setParams({
                  onLoad: true
                })
              }}
        />
        </View>
    )
}                 

B頁面很簡單,返回只需要調用goBack方法即可

this.props.navigation.goBack();

end


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM