Реагирующая навигация StackNavigator не работает в SwitchNavigation - PullRequest
2 голосов
/ 02 июня 2019

Я использую React Navigation для реализации аутентификации.Я хочу, чтобы при наличии действующего токена пользователь направлялся в навигатор приложений.В противном случае он будет направлен на навигатор авторизации.

В моей реализации монтируется экран загрузки, а также аутентификация, но я ничего не вижу.

index.js:

import { createSwitchNavigator, createAppContainer } from 'react-navigation';

import app from './app';
import auth from './auth';
import loading from './loading-screen'

export default createAppContainer(createSwitchNavigator(
    {
        loading,
        app,
        auth
    }
));

loading-screen.js:

import React from 'react';
import {
  ActivityIndicator,
  AsyncStorage,
  StatusBar,
  View,
} from 'react-native';

export default class LoadingScreen extends React.Component {
  constructor(props) {
    super(props);
    this.getUser();
  }

  getUser = async () => {
    const token = await AsyncStorage.getItem('token');

    this.props.navigation.navigate(token ? 'app' : 'auth');
  };

  render() {
    return (
      <View>
        <ActivityIndicator />
        <StatusBar barStyle="default" />
      </View>
    );
  }
};

app.js:

import React from 'react';
import { createStackNavigator } from 'react-navigation';

import { View, Text } from 'react-native';

const login = () => (
    <View>
        <Text>login</Text>
    </View>
);

export default createStackNavigator({login});

Если я экспортирую компонент входа из auth.js без функции createStackNavigator, он работает иЯ вижу логин на экране.С ним это не так.

...