Como impedir que uma aplicação React Native retorne ao clicar no BackButton usando React Navigation

Olá, estou criando uma aplicação em React Native, e para as navegações eu tenho trabalhado com o plugin React Navigation. A estrutura do meu projeto está assim:

import React from 'react'; import { View, Text, Button } from 'react-native'; import { FluidNavigator } from 'react-navigation-fluid-transitions';  // tela de splash export default SplashScreen extends React.Component {   componentDidMount = () =>      setTimeout(() => this.props.navigation.navigate('Login'), 500);    render = () =>      <View>     <Text>SplashScreen</Text>   </View>; }  // tela de login de usuario export default LoginScreen extends React.Component {   goToDashboard = () => this.props.navigation.navigate('Dashboard');   goToRegister = () => this.props.navigation.navigate('Register');   render = () =>     <View>       <Text>LoginScreen</Text>       <Button onPress={goToDashboard} title="Sign in" />       <Button onPress={goToRegister} title="Sign up" />     </View>   } }  // tela de registro de usuario export default RegisterScreen extends React.Component {   render = () => <View><Text>RegisterScreen</Text></View>; }  // tela de dashboard (após o usuário estar logado) export default DashboardScreen extends React.Component {   render = () => <View><Text>DashboardScreen</Text></View>; }  // navigator contendo as telas const Navigator = FluidNavigator({   Splash: { screen: SplashScreen },   Login: { screen: LoginScreen },   Register: { screen: RegisterScreen },   Dashboard: { screen: DashboardScreen } })  export default App extends React.Component {   render(){     return <View><Navigator/></View>   }       } 

Meu problema está nas navegações. Quando o usuário clica no botão voltar, ele vai para a tela anterior e isso me complica… eu preciso que a navegação seja na seguinte relação:

  • SplashScreen => LoginScreen
  • LoginScreen <=> RegisterScreen
  • LoginScreen => DashboardScreen
  • RegisterScreen => DashboardScreen

Eu até tentei resetar o index usando o NavigationActions mas isso atrapalha as animações que estão na tela (por causa do react-navigation-fluid-transitions).

Também tentei bloquear o evento do BackButton assim como em alguns tutoriais, só que se eu bloqueio ele na tela de Screen, ele passa a dar pau em todas as telas, impedindo que eu consiga voltar para a tela de Login na tela de Register e consequentemente para as outras telas que virão na aplicação.

O que eu preciso fazer para que eu impeça (dentro da tela que eu quero impedir) para que ela não possa voltar até ‘X’ tela?