React Native中NavigatorIOS組件的簡單使用詳解
一、NavigatorIOS組件介紹
1,組件說明
使用 NavigatorIOS 我們可以實(shí)現(xiàn)應(yīng)用的導(dǎo)航(路由)功能,即實(shí)現(xiàn)視圖之間的切換和前進(jìn)、后退。并且在頁面上方會(huì)有個(gè)導(dǎo)航欄(可以隱藏)。
NavigatorIOS 組件本質(zhì)上是對(duì) UIKit navigation 的包裝。使用 NavigatorIOS 進(jìn)行路由切換,實(shí)際上就是調(diào)用 UIKit 的 navigation。
NavigatorIOS 組件只支持 iOS 系統(tǒng)。React Native 還提供了一個(gè) iOS 和 Android 都通用導(dǎo)航組件:Navigator。這個(gè)以后再說。
2,組件的屬性
(1)barTintColor:導(dǎo)航條的背景顏色
(2)initialRoute:用于初始化路由。其參數(shù)對(duì)象中的各個(gè)屬性如下:
{
component: function, //加載的視圖組件
title: string, //當(dāng)前視圖的標(biāo)題
passPros: object, //傳遞的數(shù)據(jù)
backButtonIcon: Image.propTypes.source, // 后退按鈕圖標(biāo)
backButtonTitle: string, //后退按鈕標(biāo)題
leftButtonIcon: Image.propTypes.soruce, // 左側(cè)按鈕圖標(biāo)
leftButtonTitle: string, //左側(cè)按鈕標(biāo)題
onLeftButtonPress: function, //左側(cè)按鈕點(diǎn)擊事件
rightButtonIcon: Image.propTypes.soruce, // 右側(cè)按鈕圖標(biāo)
rightButtonTitle: string, //右側(cè)按鈕標(biāo)題
onRightButtonPress: function, //右側(cè)按鈕點(diǎn)擊事件
wrapperStyle: [object Object] //包裹樣式
}
(3)itemWrapperStyle:為每一項(xiàng)定制樣式,比如設(shè)置每個(gè)頁面的背景顏色。
(4)navigationBarHiddent:為 true 時(shí)隱藏導(dǎo)航欄。
(5)shadowHidden:為 true 時(shí),隱藏陰影。
(6)tintColor:導(dǎo)航欄上按鈕的顏色。
(7)titleTextColor:導(dǎo)航欄上字體的顏色。
(8)translucent:為 true 時(shí),導(dǎo)航欄為半透明。
3,組件的方法
當(dāng)組件視圖切換的時(shí)候,navigator 會(huì)作為一個(gè)屬性對(duì)象被傳遞。我們可以通過 this.props.navigator 獲得 navigator 對(duì)象。該對(duì)象的主要方法如下:
(1)pust(route):加載一個(gè)新的頁面(視圖或者路由)并且路由到該頁面。
(2)pop():返回到上一個(gè)頁面。
(3)popN(n):一次性返回N個(gè)頁面。當(dāng) N=1 時(shí),相當(dāng)于 pop() 方法的效果。
(4)replace(route):替換當(dāng)前的路由。
(5)replacePrevious(route):替換前一個(gè)頁面的視圖并且回退過去。
(6)resetTo(route):取代最頂層的路由并且回退過去。
(7)popToTop():回到最上層視圖。
二、使用樣例
NavigatorIOS是React Native自帶的導(dǎo)航組件,下面是它的簡單應(yīng)用。
初始化第一個(gè)場景
import PropTypes from 'prop-types';
import React, { Component } from 'react';
import { NavigatorIOS, Text } from 'react-native';
import { NextScene } from 'react-native';
export default class NavigatorIOSApp extends Component {
render() {
return (
<NavigatorIOS
initialRoute={{
component: MyScene,
title: '初始化第一個(gè)場景',
}}
style={{flex: 1}}
/>
);
}
}
class MyScene extends Component {
static propTypes = {
title: PropTypes.string.isRequired,
navigator: PropTypes.object.isRequired,
}
_onForward = () => {
this.props.navigator.push({
component:NextScene
title: '第二個(gè)場景'
});
}
render() {
return (
<View>
<Text>Current Scene: { this.props.title }</Text>
<TouchableHighlight onPress={this._onForward}>
<Text>前往下一個(gè)場景</Text>
</TouchableHighlight>
</View>
)
}
}
第二個(gè)場景
export default class NextScene extends Component {
render() {
return (
<View>
<Text>這是第二個(gè)場景</Text>
</View>
)
}
}
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 關(guān)于React Native使用axios進(jìn)行網(wǎng)絡(luò)請(qǐng)求的方法
- 詳解React Native與IOS端之間的交互
- iOS端React Native差異化增量更新的實(shí)現(xiàn)方法
- React-Native 橋接iOS原生開發(fā)詳解
- react-native組件中NavigatorIOS和ListView結(jié)合使用的方法
- ios原生和react-native各種交互的示例代碼
- React Native第三方平臺(tái)分享的實(shí)例(Android,IOS雙平臺(tái))
- React Native 集成 iOS 原生功能(打印機(jī)功能為例)
相關(guān)文章
React構(gòu)建簡潔強(qiáng)大可擴(kuò)展的前端項(xiàng)目架構(gòu)
這篇文章主要為大家介紹了React構(gòu)建簡潔強(qiáng)大可擴(kuò)展的前端項(xiàng)目架構(gòu)實(shí)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08
React報(bào)錯(cuò)信息之Expected?an?assignment?or?function?call?and?
這篇文章主要介紹了React報(bào)錯(cuò)之Expected?an?assignment?or?function?call?and?instead?saw?an?expression,下面有兩個(gè)示例來展示錯(cuò)誤是如何產(chǎn)生的,需要的朋友可以參考下2022-08-08
React-View-UI組件庫封裝Loading加載中源碼
這篇文章主要介紹了React-View-UI組件庫封裝Loading加載樣式,主要包括組件介紹,組件源碼及組件測試源碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06
React實(shí)現(xiàn)生成和導(dǎo)出Word文檔的方法詳解
React是一個(gè)流行的JavaScript庫,用于構(gòu)建現(xiàn)代前端應(yīng)用程序,本文將深入探討如何在React中生成和導(dǎo)出Word文檔,感興趣的小伙伴可以學(xué)習(xí)一下2023-09-09
React基礎(chǔ)-JSX的本質(zhì)-虛擬DOM的創(chuàng)建過程實(shí)例分析
這篇文章主要介紹了React基礎(chǔ)-JSX的本質(zhì)-虛擬DOM的創(chuàng)建過程,結(jié)合具體實(shí)例形式分析了虛擬dom的基本原理與實(shí)現(xiàn)方法,需要的朋友可以參考下2023-05-05
詳解開發(fā)react應(yīng)用最好用的腳手架 create-react-app
本篇文章主要介紹了詳解開發(fā)react應(yīng)用最好用的腳手架 create-react-app,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-04-04
React?Router?v6路由懶加載的2種方式小結(jié)
React?Router?v6?的路由懶加載有2種實(shí)現(xiàn)方式,1是使用react-router自帶的?route.lazy,2是使用React自帶的?React.lazy,下面我們就來看看它們的具體實(shí)現(xiàn)方法吧2024-04-04

