2016-09-09 5 views
1

私は小さなログインシステムを持っています。戻るボタンを押してログインすると、ログアウトしてログインページに戻ってくるかどうか尋ねられますが、唯一の問題は、ログアウトした後に「ログイン」ページの「戻る」ボタンを押すと、もう一度ログアウトしたい場合は、各コンポーネントのバックボタン設定をどのように追加しますか?React-Native:戻るボタンの設定はすべてのコンポーネントにとどまっています

(私は私のルートの反応ネイティブ・フラックス・ルータを使用しています)

componentWillMount() { 
    this._loadSessionToken().done(); 
    BackAndroid.addEventListener('hardwareBackPress', function() { 
     Alert.alert(
      'Logout', 
      'Do you want to log out?', 
      [ 
       {text: 'Yes', onPress:() => Actions.login({text: 'Logout'})}, 
       {text: 'No'} 
      ] 
     ); 
     return true; 
    }); 
}; 
+0

あなたがログインしている場合はflagがtrue、そうでない場合はflagがfalseです。そして、条件をバックボタンに置​​いた後、フラグが真であればダイアログを表示します。 –

+0

componentWillUnmount()内のイベントリスナーを削除します。 – vijayst

+0

皆さん、お手伝いをしていただきありがとうございます、残念ながら、このソリューションのどれも働いていませんでした。 – NinetyHH

答えて

1

は別のモジュールに戻るボタンプレスを処理する関数を作成します。あなたはログアウトページ自体からイベントリスナーを削除したい場合は、次のように、componentWillUnmountでそれを処理:

function componentWillUnmount() { 
    BackAndroid.removeEventListener('hardwareBackPress', fn); 
} 

ログインページからイベントリスナーを削除したい場合は、FNをインポートします。それをcomponentWillMountで処理します。

import { fn } from '../common/backpress'; 

function componentWillMount() { 
    BackAndroid.removeEventListener('hardwareBackPress', fn); 
} 
関連する問題