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} 
> 

에 연결되어 있는지 확인 앞으로이 해결 방법을 실제로 사용해야하는지 확인하십시오.