2016-12-07 45 views
1

當前,當我按下android硬件返回鍵時,反應路由器通量將調用Actions.pop()方法。無論如何,爲了防止它在後面的場景中調用防止返回的方法,因爲我想跳到其他場景。從現場例如A到場景B,場景B場景C,當按回到場景C鍵,我想去現場答:我試過反應原生路由器通量:重寫android硬件返回鍵

componentWillMount() { 
    // Disable back button by just returning true instead of Action.pop() 
    BackAndroid.addEventListener('hardwareBackPress',() => { 
     return true; 
    }); 
    }; 
+0

嘗試從場景C中按下返回按鈕時從「路線」中刪除場景B. – Prasanna

回答

0

根據BackAndroid docs

檢測硬件後退按鈕按下,並以編程方式調用默認後退按鈕功能,以在沒有偵聽器或沒有偵聽器返回true時退出應用程序。事件訂閱以相反的順序被調用(即,第一次註冊的訂閱),並且如果一個訂閱返回true,則不會調用先前註冊的訂閱。

所以在一個特定的場景中,你可以添加一個BackAndroid監聽器,在這個監聽器中做你想做的事情並且返回true;

另一件值得一提的事情是,你在componentWillMount中添加了事件監聽器。
如果路由器是此組件的後代孩子,這意味着您在路由器安裝之前註冊回退事件,以便路由器偵聽器將在您的偵聽器之後註冊,並且將在偵聽器之前調用。
嘗試註冊到ComponentDidMount中的事件。這個方法在路由器被安裝並且它的監聽器被註冊之後被調用。