React-native-splashscreen 和导航
Posted
技术标签:
【中文标题】React-native-splashscreen 和导航【英文标题】:React-native-splashscreen and navigation 【发布时间】:2020-07-12 21:25:51 【问题描述】:我想使用 react-native 初始屏幕创建一个没有白屏问题的初始屏幕,然后我想检查导航。假设我有 3 个屏幕启动画面、登录和主页。如果用户已登录,我想从启动屏幕导航到主屏幕,否则我想从启动屏幕导航到登录页面。如何使用 react-native-splash-screen 和 react-navigation 实现这一点。
App.js
import React from 'react';
import ActivityIndicator from 'react-native';
import Provider from 'react-redux';
import SafeAreaProvider from 'react-native-safe-area-context';
import PersistGate from 'redux-persist/es/integration/react';
import Navigator from './app/navigation/NavigationStack';
import configureStore from './app/store/configureStore';
const persistor, store = configureStore();
export default function App()
return (
<SafeAreaProvider>
<Provider store=store>
<PersistGate loading=<ActivityIndicator /> persistor=persistor>
<Navigator></Navigator>
</PersistGate>
</Provider>
</SafeAreaProvider>
);
NavigationStack.js
function MyStack()
return (
<NavigationContainer ref=navigationRef>
<Stack.Navigator
screenOptions=
headerShown: false,
>
<Stack.Screen
name=Strings.string_SignInScreen
component=SignInScreen
/>
<Stack.Screen name=Strings.string_HomeScreen component=Home />
</Stack.Navigator>
</NavigationContainer>
);
export default MyStack;
【问题讨论】:
分辨率参考 React-native-splash-screen 模块。 被推荐的还是没听懂 youtube.com/watch?v=XaKqek_m2mI 他们已经解释了实现目标的正确步骤。 不,不是,请阅读问题。我需要检查一个条件 【参考方案1】:你可以做这样的事情,在它的 componentDidMount cehck fro user exits via asyncstorage etc,然后相应地导航
import SplashScreen from 'react-native-splash-screen'
export default class WelcomePage extends Component
componentDidMount()
// do stuff while splash screen is shown
// After having done stuff (such as async tasks) hide the splash screen
if(userExists)
SplashScreen.hide();
this.props.navigation.navigate('Homescreen');
else
this.props.navigation.navigate('LoginScreen');
希望对您有所帮助。如有疑问,请随意
【讨论】:
嘿,Gourav,你能分享你的邮件 ID 吗? WelcomePage 中的 render() return () 函数呢? 不渲染,不想渲染,有逻辑就行了 我已经添加了我的 App.js 文件和导航堆栈。请看一下以上是关于React-native-splashscreen 和导航的主要内容,如果未能解决你的问题,请参考以下文章