mattedev
@mattedev
web developer

Почему не работает роутинг в react native router flux при авторизации?

Всем привет. Делаю авторизацию в react native. Использую модуль для роутинга react native router flux. Вот начальный компонент.
export default class authreactnative extends Component {

  state = {
      loggedIn:false,
  }

  componentWillMount = () => {

    firebaseApp.auth().onAuthStateChanged((user) => {

        this.setState({
          loggedIn:!!user,
        });

    });

  }
  render() {

    const { loggedIn } = this.state;
    const rootSelector = () => loggedIn ? 'home' : 'login';

    return (
      <Router>
        <Scene key="root" tabs={true} selector={rootSelector}>
          <Scene key="login" >
            <Scene key="authuser" initial={true} component={Auth} title="auth"/>
          </Scene>
          <Scene key="home">
            <Scene key="appuser" initial={true} component={App} title="app"/>
          </Scene>
        </Scene>
      </Router>
    );

  }
}

Всегда срабатывает сцена login, хоть я вручную менял состояние, всегда открывает login. После успешной авторизации, ошибок нет, но не кидает на нужную мне сцену home. Консоль после авторизации пишет

Key authuser is already defined!
Key login is already defined!
Key appuser is already defined!
Key home is already defined!
Key root is already defined!


В чем может быть проблема?
  • Вопрос задан
  • 409 просмотров
Пригласить эксперта
Ответы на вопрос 1
blackPeanut
@blackPeanut
React Native / Front-end developer
Насколько я помню, react-native-router-flux всегда отрисовывает первую сцену, которая указана в root компоненте. Возможно, вам стоит попробовать вынести авторизацию в отдельный компонент откуда сделать переход на нужную сцену при успешной авторизации.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы