React Native Router Flux автоматически возвращается к предыдущему экрану - PullRequest
1 голос
/ 15 июня 2019

Я использую react native router flux в моем приложении.У меня три экрана.Первый - Splash, второй - номер мобильного телефона, а третий - OTP.Когда пользователь успешно вводит номер мобильного телефона, я перенаправляю его с экрана номера мобильного телефона на экран OTP, но через несколько секунд экран OTP автоматически переходит на экран номера мобильного телефона.Ниже приведен мой код маршрутизатора

const RouterComponent = () => {
  return (
    <Router>
      <Scene key="root" hideNavBar>
        <Scene key="splash" component={SplashScreen} hideNavBar initial />
        <Scene key="mobileLoginScreen" component={MobileLoginScreen} />
        <Scene key="otpLoginScreen" component={OTPLoginScreen} />
      </Scene>

    </Router>
  );
};

Ниже приведен код, когда я получаю успешный ввод правильного номера мобильного телефона и перехода на экран OTP

const loginUserSuccess = (dispatch, response) => {
  dispatch({
    type: MOBILE_NUMBER_LOGIN_USER_SUCCESS,
    payload: response
  });

  if (response.data.status === 1) {
    Actions.otpLoginScreen();
    // console.log(response.data.msg);
  } else {
    // console.log(response.data.msg);
    loginUserFail(dispatch, response.data.msg);
  }
};

Я не понимаю, почему экран OTPавтоматически возвращается к экрану номера мобильного телефона?

Код моего экрана-заставки выглядит следующим образом

class SplashScreen extends Component {
  componentDidMount() {
    setInterval(() => {
      Actions.replace("mobileLoginScreen");
      // Actions.mobileLoginScreen();
    }, 4000);
  }

Ниже приведен код моего экрана OTP

class OTPLoginScreen extends Component {
render() {
    return (
      <View>
        <Text>OTP Screen</Text>
      </View>
    );
  }

}

Полный код можно найтив https://github.com/pritish12/reactreduxdemo

1 Ответ

0 голосов
/ 25 июня 2019

Я не знаю, что такое реализация response-native-router-flux, но я предполагаю, что ваш SplashScreen монтируется 2 раза после перехода к экрану OTP, который вызывает метод SplashScreen componentDidMount и, следовательно, запускает интервал длязапустите мобильный экран.Вы можете установить точку останова или console.log(..) в методе componentDidMount для дальнейшего исследования

...