Contents
react-navigation V5
I’ve written a blog post about react-navigation version 5. If you want to know how to use it, see the link below.
create react-native project
this blog uses react-native project which composed typescript and styled-components. if you want to know how to apply typescript and styled-components to RN, see previous blogs.
react-navigation installation
react-navigation V4
install react-navigation library via below commands.
npm install --save react-navigation react-native-gesture-handler react-native-reanimated react-native-screens
from react-navigation V4, each navigation is separated other libraries. you need to install the library which you want to use the navigation like below.
react-navigation-stack
you can use the navigation via this library.
- createStackNavigator
 - StackGestureContext
 - Transition
 - StackView
 - StackViewCard
 - StackViewTransitionConfigs
 - Header
 - HeaderTitle
 - HeaderBackButton
 - HeaderStyleInterpolator
 
Installation command.
npm install --save react-navigation-stack
react-navigation-tabs
you can use the navigation via this library.
- createBottomTabNavigator
 - createMaterialTopTabNavigator
 - BottomTabBar
 - MaterialTopTabBar
 
Installation command.
npm install --save react-navigation-tabs
react-navigation-drawer
you can use the navigation via this library.
- createDrawerNavigator
 - DrawerGestureContext
 - DrawerRouter
 - DrawerActions
 - DrawerView
 - DrawerNavigatorItems
 - DrawerSidebar
 
Installation command.
npm install --save react-navigation-drawer
after installation, you should connect native modules to execute the command below.
cd ios
pod install
cd ...
react-navigation v3
install react-navigation library via below commands.
npm install --save react-navigation react-native-gesture-handler
npm install --save-dev @types/react-navigation
link react-native-gesture-handler library
execute below command to link react-native-gesture-handler library to RN(react-native) project.
react-native link react-native-gesture-handler
how to use
there are many ways to use react-navigation at the official site. if you want to know details, please check below link.
- official site: https://reactnavigation.org/docs
 
we’ve made the repository about basic usage by following official site. before using react-navigation, if you see this repository, it will help when you get the basic structure.
- react-navigation-exercise V4: https://github.com/dev-yakuza/react-navigation-v4-exercise
 - react-navigation-exercise V3: https://github.com/dev-yakuza/react-navigation-exercise
 
Navigation to use
import Navigation to use.
V4
import {createSwitchNavigator, createAppContainer} from 'react-navigation';
import {
  createBottomTabNavigator,
  createMaterialTopTabNavigator,
} from 'react-navigation-tabs';
import {createStackNavigator} from 'react-navigation-stack';
V3
import {
  createSwitchNavigator,
  createBottomTabNavigator,
  createStackNavigator,
  createAppContainer,
} from 'react-navigation';
createAppContainer
to use react-navigation in App, we should use createAppContainer to Top navigation.
createSwitchNavigator
if App has Login feature, we recommend to use createSwitchNavigator. our Repository uses Switch Navigation to basic navigation.
export default createAppContainer(
  createSwitchNavigator(
    {
      AuthLoading,
      Auth,
      MainNavi,
    },
    {
      initialRouteName: 'AuthLoading',
    }
  )
);
createStackNavigator
this createStackNavigator is the navigator to stack a view to another view. we use this navigation to show full screen view on tab navigation and display another view in tab navigation.
const MainNavi = createStackNavigator({
  MainTab: {
    screen: MainTab,
    navigationOptions: ({ navigation }) => ({
      header: null,
    }),
  },
  FullDetail,
});
createBottomTabNavigator
we use this createBottomTabNavigator to show tab navigation on the bottom of the screen.
const MainTab = createBottomTabNavigator({
  FirstTabStack,
  SecondTab,
  ThirdTab,
});
switch navigation
we use below code to switch a view to another view.
this.props.navigation.navigate('MainTab');
hide Navigation bar
you can hide navigation bar with below code
...
export default class Home extends React.Component<Props, State> {
  static navigationOptions = { header: null };
  render() {
    return (
      <Container>
        <StyledText>Home screen!</StyledText>
      </Container>
    );
  }
}
...
- static navigationOptions: you can set navigation options via this variable.
 - { header: null }: hide navigation header bar.
 
reference
- official site: react-navigation
 
 Was my blog helpful? Please leave a comment at the bottom. it will be a great help to me! 
App promotion
Deku.Deku created the applications with Flutter.If you have interested, please try to download them for free.



