首页 > 解决方案 > React Navigation StackNavigator 在 SwitchNavigation 中不起作用

问题描述

我正在使用 React Navigation 来实现身份验证。我希望如果有有效的令牌,用户将被定向到应用导航器。否则,他将被引导至 auth navigator。

在我的实现中,加载屏幕安装,还有身份验证,但我什么也没看到。

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

加载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>
    );
  }
};

应用程序.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});

如果我在没有createStackNavigator功能的情况下从 auth.js 导出登录组件,它可以工作并且我在屏幕上看到登录。有了它,它不会。

标签: reactjsreact-nativereact-native-androidreact-navigation

解决方案


推荐阅读