Complex Navigation Example with React Native

 Run the following command with your project directory

    npm i react-navigation react-navigation-drawer react-navigation-tabs react-navigation-stack

Project Structure

src
    ->actions
    ->common
    ->components
    ->containers
    ->navigation
        -index.js
    ->reducers
    ->services
    ->store

code for complex navigation

    open navigation folder inside index.js in any code editor with the following code

index.js

import React from 'react';
import { createAppContainer, createSwitchNavigator } from "react-navigation";
import { createDrawerNavigator } from 'react-navigation-drawer';
import { createBottomTabNavigator } from 'react-navigation-tabs';
import { createStackNavigator } from 'react-navigation-stack';

import Example from './containers/Example';

const FeedStack = createStackNavigator({
    Feed: {
        screen: Example,
        navigationOptions: {
            headerTitle: 'Feed',
        },
    },
    Details: {
        screen: Example,
        navigationOptions: {
            headerTitle: 'Details',
        },
     },
});

const SearchStack = createStackNavigator({
    Search: {
        screen: Example,
        navigationOptions: {
            headerTitle: 'Search',
        },
    },
    Details: {
        screen: Example,
        navigationOptions: {
            headerTitle: 'Details',
        },
    },
});

const DiscoverStack = createStackNavigator({
    Discover: {
        screen: Example,
        navigationOptions: {
            headerTitle: 'Discover',
        },
    },
    Details: {
        screen: Example,
        navigationOptions: {
            headerTitle: 'Details',
        },
    },
});

const MainTabs = createBottomTabNavigator({
    Feed: {
        screen: FeedStack,
        navigationOptions: {
            tabBarLabel: 'Feed',
        },
    },
    Search: {
        screen: SearchStack,
        navigationOptions: {
            tabBarLabel: 'Search',
        },
    },
    Discover: {
        screen: DiscoverStack,
        navigationOptions: {
            tabBarLabel: 'Discover',
        },
      },
});

const SettingsStack = createStackNavigator({
    SettingsList: {
        screen: Example,
        navigationOptions: {
            headerTitle: 'Settings List',
        },
    },
    Profile: {
        screen: Example,
        navigationOptions: {
            headerTitle: 'Profile',
        },
    },
});

const MainDrawer = createDrawerNavigator({
    MainTabs: MainTabs,
    Settings: SettingsStack,
});

const AuthStack = createStackNavigator({
      SignIn: {
            screen: Example,
            navigationOptions: {
                  headerTitle: 'Sign In',
            },
      },
      CreateAccount: {
            screen: Example,
            navigationOptions: {
                  headerTitle: 'Create Account',
            },
       },
      ForgotPassword: {
            screen: Example,
            navigationOptions: {
                  headerTitle: 'Forgot Password',
            },
      },
      ResetPassword: {
            screen: Example,
            navigationOptions: {
                  headerTitle: 'Reset Password',
            },
        },
});

const App = createSwitchNavigator({

    Loading: {
        screen: Example,
    },
    Auth: {
        screen: AuthStack,
     },
     App: {
        screen: MainDrawer,
     },
});

export default createAppContainer(App);

Comments

Popular posts from this blog

React Native Floating Label Textinput

React Native Tab View

React Native Modal box