在AppNavigator中添加如下代码
import React from ‘react’
import {View, ActivityIndicator} from ‘react-native’
import {createAppContainer, createBottomTabNavigator, createStackNavigator,createSwitchNavigator} from ‘react-navigation’
import HomePage from ‘./pages/home/HomePage’
import Detail from ‘./pages/home/Detail’
import Login from ‘./pages/login/Login’
import AsyncStorage from ‘@react-native-community/async-storage’;
class AuthLoadingScreen extends React.PureComponent{
constructor() {
super();
this._getRoute()
}
_getRoute = async () => {
let res = await AsyncStorage.getItem('token');
this.props.navigation.navigate( res ? 'App' : 'Auth' );
};
render() {
return (
<View style={{flex: 1, justifyContent:'center', alignItems: 'center'}}>
<ActivityIndicator />
</View>
)
}
}
const Home = createStackNavigator({
HomePage,
Detail
});
const LoginScreen = createStackNavigator({Login});
export default createAppContainer(createSwitchNavigator(
{
AuthLoading: AuthLoadingScreen,
Auth: LoginScreen,
App: Home,
},
{
initialRouteName: ‘AuthLoading’
}
))