3

私の反応するネイティブアプリで反応したネイティブルータフラックスを使用しています。戻ってくる前に確認ポップアップを追加したいので、バックボタンのプレスイベントを無効にしたい。私はたくさんの検索をしましたが、私が見つけたすべてのリンクは、Androidのハードウェアの戻るボタンの押下を無効にするためのものでした。私はハードウェアのバックプレスを無効にするだけでなく、ナビゲーションバーの戻るボタンのプレスイベント(AndroidとiOSの両方)を上書きしたいと考えています。ここで私を助けてください。バックプレスを無効にするネイティブルータのフラックスに反応する

編集:私は私のシーンbackonBackで2つの小道具を追加することにより、バックプレスイベントを上書きする1つの方法を見つけました。しかし、今問題は、この背表紙が条件付きであることです。私はこのシーンにブール値の小道editを渡しています。編集が本当であれば、私はバックプレースをオーバーライドしたいだけです。それ以外の場合は、デフォルトのものが必要です。だから、そのシーンに渡されている小道具を使って、自分のRouter.jsのSceneパラメータを変更するにはどうすればいいですか?

sudoのコード

if(edit){ 
    openConfirmationDialog(); 
} else { 
    Actions.pop(); 
} 

答えて

2

よし!私はそれへの道を見つけた。

私はこのシーンを開封しておりますどこから私はこのActions.Home({onBack:() => console.log('custom back callback') });

のように私は、動的バックコールバックに私はそのシーンを開くたびに提供することができます。この方法は、コールバックをonBack渡すことができます。

+0

あなたがフィールドまたはアクセスできる任意の解決策を見つけますかいくつかの条件をチェックするために呼び出されたアクションの小道具? –

0

私には、@ Raj Suvariyaによる上記の解決策が働いていましたが、私がカスタマイズしたいシーン( 'Raj'の例では 'Home'シーン)に 'renderBackButton'コールバックを追加した場合のみです: シーンの定義に追加されました:

renderBackButton={()=>{}} 

そして、これは、上記のRajの答えと同様に、ページへのナビゲーション時に追加されました:

Actions.Home({onBack:() => console.log('custom back callback') }); 
関連する問題