Programming Tutorials

StackNavigator example in React Native

By: Manoj in React-Native Tutorials on 2023-04-09  

Here's an example of an Expo app with StackNavigator:

import React from 'react';
import { StyleSheet, Text, View, Button } from 'react-native';
import { createStackNavigator } from '@react-navigation/stack';
import { NavigationContainer } from '@react-navigation/native';

function HomeScreen({ navigation }) {
  return (
   <View style={styles.container}>
<Text>Home Screen</Text>
<Button
title="Go to Details"
onPress={() => navigation.navigate('Details')}
/>
</View> ); } function DetailsScreen({ navigation }) { return ( <view>
<text>Details Screen</text>
<button title="Go to Details again" onpress="{()"> navigation.push('Details')}
/&gt;
</button><button title="Go back" onpress="{()"> navigation.goBack()} /&gt;
</button></view> ); } const Stack = createStackNavigator(); function App() { return ( <navigationcontainer>
<stack.navigator>
<stack.screen name="Home" component="{HomeScreen}"></stack.screen>
<stack.screen name="Details" component="{DetailsScreen}"></stack.screen>
</stack.navigator>
</navigationcontainer> ); } export default App; const styles = StyleSheet.create({ container: { flex: 1, alignItems: 'center', justifyContent: 'center', }, });

In this example, we import createStackNavigator and NavigationContainer from @react-navigation/native. We then define two screens, HomeScreen and DetailsScreen, which are rendered using Stack.Screen components inside a Stack.Navigator component. We also define a Stack constant to hold our StackNavigator.

HomeScreen and DetailsScreen are functional components that accept navigation as a prop, which is used to navigate between the screens. The Button components use navigation.navigate() and navigation.push() to move between the screens. The DetailsScreen component also includes a Button component that uses navigation.goBack() to go back to the previous screen.

Finally, we export our App component and include it in the index.js file. We also define a styles constant to hold our styles.






Add Comment

* Required information
1000

Comments

No comments yet. Be the first!

Most Viewed Articles (in React-Native )

Remove all installed dependencies and install them again

use axios in Expo to call APIs

Start background location tracking after login in expo react native

'import' and 'export' may only appear at the top level - React Native

Session variables in React Native - Expo

react-native-background-job alternative in expo app

disable the back arrow in the header of a screen in a React Navigation Stack Navigator

set up a global error handler in React Native (expo)

Error Handling in TextInput - React Native

Some dependencies are incompatible with the installed expo version:

react-native-android-location-services-dialog-box alternative in expo

loadAsync() vs useFonts() in expo - react native

npm install vs npx expo install

flexDirection in React Native

expo-secure-store to store sensitive data securely in React Native

Latest Articles (in React-Native)

Session variables in React Native - Expo

use axios in Expo to call APIs

Start background location tracking after login in expo react native

set up a global error handler in React Native (expo)

SafeAreaView in React Native

Some dependencies are incompatible with the installed expo version:

disable the back arrow in the header of a screen in a React Navigation Stack Navigator

react-native-android-location-services-dialog-box alternative in expo

Error Handling in TextInput - React Native

react-native-background-job alternative in expo app

'import' and 'export' may only appear at the top level - React Native

OpenType (OTF) vs TrueType (TTF)

loadAsync() vs useFonts() in expo - react native

expo-secure-store vs expo-file-system in expo - react native

Send push notifications to android/ios sample code using expo - react native