[ 卡卡 DAY 13 ] - React Native 页面导览 Navigation (上)

Navigation 的用处?
在一个 App 中一定会有很多页面,
Navigation 提供简单易用的跨平台导览,不论在 iOS 和 Android 都可以进行转页、tab 和汉堡选单的转导。

安装 Navigation

  1. 安装 react-navigation/native
npm install @react-navigation/native
  1. 安装依赖原生以下套件
npm install react-native-reanimated react-native-gesture-handler react-native-screens react-native-safe-area-context @react-native-community/masked-view

PS. 安装後若是出现警告,可能是版本不同关系,可略过!

  1. iOS update
cd ios
pod install
  1. 在 index.js 档案加入 react-native-gesture-handler (要在第一行)
import 'react-native-gesture-handler';
import {AppRegistry} from 'react-native';
import App from './App';
import {name as appName} from './app.json';

AppRegistry.registerComponent(appName, () => App);
  1. 接着将 NavigationContainer 放在入口档案(例如 index.js 或 App.js)
import 'react-native-gesture-handler';
import React from 'react';
import { NavigationContainer } from '@react-navigation/native';

const App = ()=> {
  return (
    <NavigationContainer>
        {/* your app code */}
    </NavigationContainer>
  );
}

export default App

安装堆叠 stack

  • 什麽是堆叠呢?
    概念雷同 web 浏览器导航状态,使用 push 的方式叠上新的页面并且记录 history,让使用者可以看到不同的页面,并且还提供 Android 和 iOS 在堆叠中的路由时需要的手势和动画。
npm install @react-navigation/stack
  • 如何使用呢?
  1. 於 App.js 引入
import {NavigationContainer} from '@react-navigation/native';
import {createStackNavigator} from '@react-navigation/stack';

const Stack = createStackNavigator();
  1. 建立一个 首页
const Home = ({navigation}) => {
  return (
    <View style={{flex: 1, justifyContent: 'center', alignItems: 'center'}}>
      <Text>Home Screen</Text>
    </View>
  );
};
  1. 放 App.js
const App = () => {
  return (
    <NavigationContainer>
      <Stack.Navigator initialRouteName="Home">
        <Stack.Screen name="Home" component={Home} />
      </Stack.Navigator>
    </NavigationContainer>
  );
};

export default App

最後整个档案是...

//App.js
import 'react-native-gesture-handler';
import React from 'react';
import {NavigationContainer} from '@react-navigation/native';
import {createStackNavigator} from '@react-navigation/stack';
import {Text, View} from 'react-native';
const Stack = createStackNavigator();

const Home = ({navigation}) => {
  return (
    <View style={{flex: 1, justifyContent: 'center', alignItems: 'center'}}>
      <Text>Home Screen</Text>
    </View>
  );
};

const App = () => {
  return (
    <NavigationContainer>
      <Stack.Navigator initialRouteName="Home">
        <Stack.Screen name="Home" component={Home} />
      </Stack.Navigator>
    </NavigationContainer>
  );
};

export default App;

https://ithelp.ithome.com.tw/upload/images/20210928/20142011jqKj1ErvhA.png

整体来讲基本的安装设定已完成,接着就是 Day 14 的如何放入页面唷~

Day 13 done! 请多多指教


<<:  Re-architect with UseCase driven design

>>:  Day20-Go测试(testing)

Day 30 - Summary

本文将於赛後同步刊登於笔者部落格 有兴趣学习更多 Kubernetes/DevOps/Linux 相...

Kotlin Android 第13天,从 0 到 ML - Activity 和 Activity 生命周期

前言: ConstraintLayout讲完了,画面画好了那是用在那呢? 那就是要放在 Activi...

[火锅吃到饱-14] 陈师傅麻辣火锅 #营业到半夜两点

先附上店家的Google Maps,跟消费方式: 双十国庆连假开始... 一个月没发片了,原本的预定...

Day 14:动态 Route 对号入座

上篇完成了巢状路由的设置之後,紧接着新需求又出现了!接续会员後台的收藏纪录页面,我们要进一步让收藏的...

[Day 20] Node 注册事件 1

前言 昨天我们聊到, node 的 JS 层中的 IO method , 在作了相应的设定後, 就利...