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
2020 Sep  14  3
2020 Aug  20  3
2020 Jul  11  1
2020 Jun  23  3
2020 Apr  12  3
2020 Mar  11  2
2020 Feb  22  5
2020 Jan  22  7
2019 Dec  15  4
2019 Nov  11  1
2019 Jan  31  3
2018 Dec  33  4
2018 Nov  66  3
2018 Oct  12  3
2018 Sep  237  11
2018 Aug  6  2
2018 Jun  11  1
2018 Jan  54  2
2017 Sep  552  5
2017 Aug  17  1
2017 Jul  17  2
2017 Jun  52  2
2017 May  21  1
2017 Apr  33  2
2017 Mar  118  4
2017 Feb  437  4
2016 Dec  178  3
2016 Nov  394  8
2016 Oct  248  10
2016 Sep  362  6
2016 Aug  39  1
2016 Jun  1771  6
2016 May  104  3
2016 Jan  70  2
2015 Dec  392  6
2015 Nov  4  1
2015 Oct  13  1
2015 Sep  1357  6
2015 Aug  13  1
2015 Jul  126  2
2015 Jun  10  1
2015 May  20  1
2015 Apr  28  3
2015 Mar  78  3
2015 Jan  5227  4
2014 Dec  17  1
2014 Nov  2220  4
2014 Oct  63  1
2014 Sep  106  2
2014 Aug  4291  1
2014 Jul  46  2
2014 Apr  2468  12
2014 Mar  288  19
2014 Feb  238  8
2014 Jan  1510  16
2013 Dec  21  2
2013 Nov  641  2
2013 Oct  250  3
2013 Sep  11  1
2013 Aug  38  3
2013 Jul  208  1
2013 Apr  49  6
2013 Mar  1866  10
2013 Feb  310  4
2013 Jan  266  2
2012 Nov  35  2
2012 Oct  456  10
Tag Cloud
Interested in our services? Still not sure about project details? get a quote