Skip to main content

Splash Screen

Expo Router automatically orchestrates the native splash screen to keep it visible until the first route is rendered, this applies to any route that the user deep links into. To enable this functionality, install expo-splash-screen in your project.

The default behavior is to hide the splash screen when the first route is rendered, this is optimal for the majority of routes. For some routes, you may want to prolong the splash screen until additional data or asset loading has concluded. This can be achieved with the SplashScreen component. The splash screen will remain visible until all SplashScreen components in your app have been unmounted.

app/index.tsx
import { SplashScreen } from "expo-router";

export default function App() {
const [isReady, setReady] = React.useState(false);

React.useEffect(() => {
// Perform some sort of async data or asset fetching.
setTimeout(() => {
setReady(true);
}, 1000);
}, []);

return (
<>
{/* When all loading is setup, unmount the splash screen component. */}
{!isReady && <SplashScreen />}
<Text>My App</Text>
</>
);
}