3

私は反応ネイティブナビゲーションにreact-native-router-fluxを使用しています。反応のネイティブアプリに4シーンのスタックがあります。ホーム画面でクリックすると終了する

アプリがホーム画面で最初に起動するとき、[戻る]ボタンをクリックすると、アプリケーションが正常に終了します。

しかし、他の画面に移動してホーム画面に戻ると、戻るボタンがもう機能しないように見えます。ここで

は、コードスニペットです:

onBackPress() {  
    if (Actions.state.index === 0) { 
     return false; 
    } 
    Actions.pop(); 
    return true; 
} 

<Router backAndroidHandler={this.onBackPress}> 
    <Scene key="root"> 
     <Scene key="home" initial component={HomeScreen} />  
     <Scene key="screen2" component={MainScreen} />  
     <Scene key="screen3" component={ScreenSec} /> 
    </Scene> 
</Router> 

私は私のコンポーネントでActions.pop();を使用してホーム画面に移動します。

他の画面にナビゲートしてホーム画面に戻るときに、アプリを終了するにはどうすればよいですか?

ありがとうございました。

答えて

1

このライブラリの一部であるExampleプロジェクトからレデューサーを実装する場合は、レデューサー内の動作を利用できます。

const reducerCreate = params => { 

    const defaultReducer = new Reducer(params); 

    return (state, action) => { 
    // Open this up in your console of choice and dive into this action variable 
    console.log('ACTION:', action); 
    // Add some lines like this to grab the action you want 
    if(action.type === 'Navigation/BACK' && state.index === 0){ 
     BackHandler.exitApp() 
    } 
    return defaultReducer(state, action); 
    }; 
}; 

と減速がルータ

<Router 
    createReducer={reducerCreate} 
    backAndroidHandler={this.onBackPress} 
> 

に結びついている。これは理想的ではありません、あなたはこの答えを読むので、もしバグがライブラリ内に固定されるまでの回避策としてちょうどここにあることを確認してください今後この回避策を本当に使用する必要があるかどうかを確認してください。

関連する問題