welcome to XRM blog

Keep in touch with latest CRM/ERP articles

To remain competitive your organisation must be efficient across the business process spectrum. To do so you need to take sound decisions based on a balance between the cost and risk. To do so you will be heavily dependent on your content management in itself needs...

image
Blog

React Native Navigation v5.x: Stack Navigation

By Himanshu Yadav on 4/24/2020

Create new project: expo init stacknavigation

Open project into code editor, (I’m using Visual studio code)

Install stack navigation library

npm install @react-navigation/native

npm install @react-navigation/stack 

expo install react-native-reanimated react-native-gesture-handler react-native-screens react-native-safe-area-context @react-native-community/masked-view

Import stack navigation library, add these two lines

 

import { NavigationContainer } from '@react-navigation/native';

import { createStackNavigator } from '@react-navigation/stack';

 

Create a simple page

function HomeScreen() {

  return (

    <View style={flex: 1alignItems: 'center'justifyContent: 'center' }}>

      <Text>Home Screen</Text>

    </View>

  );

}

This is our Home Screen.

Now create an instance of stack navigator

const Stack = createStackNavigator();

 

Now put your Home Screen inside Navigation Container

<NavigationContainer>

      <Stack.Navigator initialRouteName="Home">

        <Stack.Screen name="Home" component={HomeScreen}/>

      </Stack.Navigator>

</NavigationContainer>

 

If you want to customize Header bar you can add some color into that

<NavigationContainer>

      <Stack.Navigator initialRouteName="Home">

      <Stack.Screen name="Home" component={HomeScreen} options={{

          headerStyle: {

            backgroundColor: '#8A2BE2'

          },

          headerTintColor: '#fff',

          

        }}/>

      </Stack.Navigator>

</NavigationContainer>

 

Now, lets navigation to another page from Home, so to do that we have to add one another UI view.

function DetailsScreen() {

  return (

    <View style={flex: 1alignItems: 'center'justifyContent: 'center' }}>

      <Text>Details Screen</Text>

    </View>

  );

}

 

We have to make some changes into Home Screen, we have to add a navigation prop

Also we have to add Button control, when we click on button it will open detail page.


Complete Code:

import * as React from 'react';

import { ButtonViewText } from 'react-native';

import { NavigationContainer } from '@react-navigation/native';

import { createStackNavigator } from '@react-navigation/stack';

 

function HomeScreen({ navigation }) {

  return (

    <View style={flex: 1alignItems: 'center'justifyContent: 'center' }}>

      <Text>Home Screen</Text>

      <Button

        title="Go to Details"

        onPress={() => navigation.navigate('Details')}

      />

    </View>

  );

}

 

function DetailsScreen() {

  return (

    <View style={flex: 1alignItems: 'center'justifyContent: 'center' }}>

      <Text>Details Screen</Text>

    </View>

  );

}

 

const Stack = createStackNavigator();

 

function App() {

  return (

    <NavigationContainer>

      <Stack.Navigator initialRouteName="Home">

        <Stack.Screen name="Home" component={HomeScreen} options={{

          headerStyle: {

            backgroundColor: '#8A2BE2'

          },

          headerTintColor: '#fff',

          

        }}/>

        <Stack.Screen name="Details" component={DetailsScreen} options={{

          headerStyle: {

            backgroundColor: '#8A2BE2'

          },

          headerTintColor: '#fff',

          

        }}/>

      </Stack.Navigator>

    </NavigationContainer>

  );

}

 

export default App;


 

Blog Calendar
Blog Calendar List
2021 Jan  13  6
2020 Dec  18  7
2020 Sep  23  3
2020 Aug  44  3
2020 Jul  47  1
2020 Jun  25  3
2020 Apr  13  3
2020 Mar  11  2
2020 Feb  23  5
2020 Jan  23  7
2019 Dec  15  4
2019 Nov  11  1
2019 Jan  31  3
2018 Dec  34  4
2018 Nov  66  3
2018 Oct  12  3
2018 Sep  272  11
2018 Aug  6  2
2018 Jun  11  1
2018 Jan  56  2
2017 Sep  554  5
2017 Aug  17  1
2017 Jul  17  2
2017 Jun  52  2
2017 May  21  1
2017 Apr  33  2
2017 Mar  119  4
2017 Feb  456  4
2016 Dec  179  3
2016 Nov  416  8
2016 Oct  253  10
2016 Sep  365  6
2016 Aug  39  1
2016 Jun  1783  6
2016 May  104  3
2016 Jan  70  2
2015 Dec  392  6
2015 Nov  4  1
2015 Oct  13  1
2015 Sep  1373  6
2015 Aug  13  1
2015 Jul  127  2
2015 Jun  10  1
2015 May  20  1
2015 Apr  28  3
2015 Mar  78  3
2015 Jan  5243  4
2014 Dec  17  1
2014 Nov  2224  4
2014 Oct  64  1
2014 Sep  106  2
2014 Aug  4436  1
2014 Jul  46  2
2014 Apr  2477  12
2014 Mar  290  19
2014 Feb  238  8
2014 Jan  1510  16
2013 Dec  21  2
2013 Nov  645  2
2013 Oct  251  3
2013 Sep  11  1
2013 Aug  38  3
2013 Jul  208  1
2013 Apr  49  6
2013 Mar  1882  10
2013 Feb  310  4
2013 Jan  266  2
2012 Nov  36  2
2012 Oct  458  10
Tag Cloud
Interested in our services? Still not sure about project details? get a quote