English 中文(简体)
React Native - Router
  • 时间:2024-12-27

React Native - Router


Previous Page Next Page  

In this chapter, we will understand navigation in React Native.

Step 1: Install Router

To begin with, we need to install the Router. We will use the React Native Router Flux in this chapter. You can run the following command in terminal, from the project folder.

npm i react-native-router-flux --save

Step 2: Entire Apppcation

Since we want our router to handle the entire apppcation, we will add it in index.ios.js. For Android, you can do the same in index.android.js.

App.js

import React, { Component } from  react ;
import { AppRegistry, View } from  react-native ;
import Routes from  ./Routes.js 

class reactTutorialApp extends Component {
   render() {
      return (
         <Routes />
      )
   }
}
export default reactTutorialApp
AppRegistry.registerComponent( reactTutorialApp , () => reactTutorialApp)

Step 3: Add Router

Now we will create the Routes component inside the components folder. It will return Router with several scenes. Each scene will need key, component and title. Router uses the key property to switch between scenes, component will be rendered on screen and the title will be shown in the navigation bar. We can also set the initial property to the scene that is to be rendered initially.

Routes.js

import React from  react 
import { Router, Scene } from  react-native-router-flux 
import Home from  ./Home.js 
import About from  ./About.js 

const Routes = () => (
   <Router>
      <Scene key = "root">
         <Scene key = "home" component = {Home} title = "Home" initial = {true} />
         <Scene key = "about" component = {About} title = "About" />
      </Scene>
   </Router>
)
export default Routes

Step 4: Create Components

We already have the Home component from previous chapters; now, we need to add the About component. We will add the goToAbout and the goToHome functions to switch between scenes.

Home.js

import React from  react 
import { TouchableOpacity, Text } from  react-native ;
import { Actions } from  react-native-router-flux ;

const Home = () => {
   const goToAbout = () => {
      Actions.about()
   }
   return (
      <TouchableOpacity style = {{ margin: 128 }} onPress = {goToAbout}>
         <Text>This is HOME!</Text>
      </TouchableOpacity>
   )
}
export default Home

About.js

import React from  react 
import { TouchableOpacity, Text } from  react-native 
import { Actions } from  react-native-router-flux 

const About = () => {
   const goToHome = () => {
      Actions.home()
   }
   return (
      <TouchableOpacity style = {{ margin: 128 }} onPress = {goToHome}>
         <Text>This is ABOUT</Text>
      </TouchableOpacity>
   )
}
export default About

The app will render the initial Home screen.

React Native Router

You can press the button to switch to the about screen. The Back arrow will appear; you can use it to get back to the previous screen.

React Native Router Advertisements