最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解react-navigation6.x路由庫的基本使用

 更新時(shí)間:2021年11月10日 11:37:32   作者:在下月亮有何貴干  
最近兩個(gè)項(xiàng)目都用到了React Navigation,所以就研究一下如何使用,本文主要介紹了react-navigation6.x路由庫的基本使用,感興趣的可以了解一下

react-native項(xiàng)目初始化

打開cmd,cd到在要進(jìn)行rn項(xiàng)目建立的文件夾。

npx react-native init testRN

這里我的項(xiàng)目名設(shè)置為testRN,可以自行設(shè)定。

安裝react-native項(xiàng)目

連接安卓虛擬機(jī)或者usb調(diào)試真機(jī),cd進(jìn)創(chuàng)建好的項(xiàng)目根目錄,yarn android安裝并啟動。

yarn android

初次安裝完畢之后,手機(jī)未斷連的情況的話,后續(xù)只需虛擬機(jī)或者手機(jī)進(jìn)入項(xiàng)目app,然后pc在項(xiàng)目根目錄yarn start啟動就可以了不用再次安裝,斷連之后可能得重新安裝。

yarn start

啟動好了之后在cmd界面按r可以更新。

react-navigation路由庫安裝

內(nèi)容建立在android端測試,我沒有測試ios。

一口氣安裝下列包。

yarn add @react-navigation/native react-native-screens react-native-safe-area-context @react-navigation/native-stack

對安卓進(jìn)行額外配置,在testRN\android\app\src\main\java\com\testrn修改MainActivity.java文件。

在這里插入圖片描述

代碼:

  import android.os.Bundle;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(null);
  }

使用路由庫

修改app.js為以下代碼

import * as React from 'react';
import { View, Text } from 'react-native';
import { NavigationContainer } from '@react-navigation/native';
import { createNativeStackNavigator } from '@react-navigation/native-stack';

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

const Stack = createNativeStackNavigator();

function App() {
  return (
    // NavigationContainer為路由的容器,將相關(guān)內(nèi)容都放在他中間
    <NavigationContainer>
      <Stack.Navigator>
        {/* Stack.Screen為路由的窗口,name設(shè)置窗口名,用于跳轉(zhuǎn),窗口的組件內(nèi)容放在component */}
        <Stack.Screen name="Home" component={HomeScreen} />
      </Stack.Navigator>
    </NavigationContainer>
  );
}

export default App;

在這里插入圖片描述

路由跳轉(zhuǎn)與路由傳參

import * as React from 'react';

// 添加Button
import { Button, View, Text } from 'react-native';
import { NavigationContainer } from '@react-navigation/native';
import { createNativeStackNavigator } from '@react-navigation/native-stack';
                    
                //  添加navigation參數(shù)
function HomeScreen({navigation}) {
  return (
    <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
      <Text>Home Screen</Text>
      {/* 添加跳轉(zhuǎn)按鈕 */}
      <Button
        title="Go to Details"   
        // navigation.navigate('Details')用于跳轉(zhuǎn),其中的Details指向?qū)?yīng)的窗口name
        onPress={() => navigation.navigate('Details')}
      />
    </View>
  );
}

function DetailsScreen() {
  return (
    <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
      <Text>Details Screen</Text>
    </View>
  );
}

const Stack = createNativeStackNavigator();

function App() {
  return (
    // NavigationContainer為路由的容器,將相關(guān)內(nèi)容都放在他中間
    <NavigationContainer>
      <Stack.Navigator>
        {/* Stack.Screen為路由的窗口,name設(shè)置窗口名,用于跳轉(zhuǎn),窗口的組件內(nèi)容放在component */}
        <Stack.Screen name="Home" component={HomeScreen} />
        <Stack.Screen name="Details" component={DetailsScreen} />
      </Stack.Navigator>
    </NavigationContainer>
  );
}

export default App;

設(shè)置路由標(biāo)題

窗口默認(rèn)會使用name作為標(biāo)題名,當(dāng)然也可以自行設(shè)定。

<Stack.Screen name="Home" component={HomeScreen} options={{ title: 'my home'}}  />

用my home代替Home作為導(dǎo)航標(biāo)題。

通常一級頁面跳轉(zhuǎn)去二級頁面時(shí),也許會根據(jù)內(nèi)容不同展示不同的標(biāo)題,這時(shí)候有就需要動態(tài)配置title。

<Stack.Screen name="Details" component={DetailsScreen}
   options={({ route }) => ({ title: route.params.title })}
/>

然后只要在一級頁面跳轉(zhuǎn)時(shí)傳遞title就可以了。

<Button
   title="Go to Details"
  // navigation.navigate('Details')用于跳轉(zhuǎn),其中的Details指向?qū)?yīng)的窗口name
   onPress={() => navigation.navigate('Details', { title: '二級頁面' })}
/>

注意這里如果一級頁面沒有傳遞title,最好傳遞一個(gè)空對象或者在二級窗口上設(shè)置初始值否則會報(bào)錯。

還可以手動更新title,使用navigation.setOptions(),其修改的是screen上的options中的屬性。

<Button
   title="Update the title"
   onPress={() => navigation.setOptions({ title: 'Updated!' })}
/>

自定義標(biāo)題組件

設(shè)置headerTitle回調(diào)返回一個(gè)函數(shù)式組件,組件內(nèi)自定義,可以是圖片。

function LogoTitle() {
  return (
    <Image
      style={{ width: 50, height: 50 }}
      source={require('./src/img/details.png')}
    />
  );
}

<Stack.Screen name="Home" component={HomeScreen}
   options={{
     title: 'My home',
     headerTitle: (props) => <LogoTitle {...props} />
   }}
/>

標(biāo)題按鈕

一樣是在screen的options上,存在headerRight可以放按鈕。

        <Stack.Screen name="Home" component={HomeScreen}
          options={{
            title: 'My home',
            headerTitle: (props) => <LogoTitle {...props} />,
            headerRight: () => (
              <Button
                onPress={() => alert('This is a button!')}
                title="Info"
                color="#fff"
              />
            ),
          }}
        />

headerBackImageSource可以修改回退按鈕圖片。

        <Stack.Screen name="Details" component={DetailsScreen}
          options={({ route }) => (
            {
              title: route.params.title,
              headerBackImageSource: detailsImg,
            }
          )}
        />

到此這篇關(guān)于詳解react-navigation6.x路由庫的基本使用的文章就介紹到這了,更多相關(guān)react-navigation6.x路由庫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 在React項(xiàng)目中使用TypeScript詳情

    在React項(xiàng)目中使用TypeScript詳情

    這篇文章主要介紹了在React項(xiàng)目中使用TypeScript詳情,文章通過圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09
  • Component與PureComponent對比解析

    Component與PureComponent對比解析

    這篇文章主要為大家介紹了Component與PureComponent解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • 使用Jenkins部署React項(xiàng)目的方法步驟

    使用Jenkins部署React項(xiàng)目的方法步驟

    這篇文章主要介紹了使用Jenkins部署React項(xiàng)目的方法步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-03-03
  • react頁面中存在多個(gè)input時(shí)巧妙設(shè)置value屬性方式

    react頁面中存在多個(gè)input時(shí)巧妙設(shè)置value屬性方式

    這篇文章主要介紹了react頁面中存在多個(gè)input時(shí)巧妙設(shè)置value屬性方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • 使用react-native-image-viewer實(shí)現(xiàn)大圖預(yù)覽

    使用react-native-image-viewer實(shí)現(xiàn)大圖預(yù)覽

    這篇文章主要介紹了使用react-native-image-viewer實(shí)現(xiàn)大圖預(yù)覽,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • 在 React 項(xiàng)目中使用 Auth0 并集成到后端服務(wù)的配置步驟詳解

    在 React 項(xiàng)目中使用 Auth0 并集成到后端服務(wù)的配置步驟詳解

    這篇文章主要介紹了在 React 項(xiàng)目中使用 Auth0 并集成到后端服務(wù)的配置步驟詳解,通過本文詳細(xì)步驟,您可以將 Auth0 集成到 React 項(xiàng)目并與后端服務(wù)交互,需要的朋友可以參考下
    2024-07-07
  • React?Hook?Form?優(yōu)雅處理表單使用指南

    React?Hook?Form?優(yōu)雅處理表單使用指南

    這篇文章主要為大家介紹了React?Hook?Form?優(yōu)雅處理表單使用指南,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • 編寫簡潔React組件的小技巧

    編寫簡潔React組件的小技巧

    這篇文章主要介紹了編寫簡潔React組件的小技巧,幫助大家更好的理解和學(xué)習(xí)使用React,感興趣的朋友可以了解下
    2021-04-04
  • 詳解React 和 Redux的關(guān)系

    詳解React 和 Redux的關(guān)系

    這篇文章主要為大家介紹了React 和 Redux的關(guān)系,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-11-11
  • react+tsx中使用better-scroll詳解

    react+tsx中使用better-scroll詳解

    這篇文章主要介紹了react+tsx中使用better-scroll,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-09-09

最新評論

布尔津县| 聂荣县| 宣汉县| 遵义县| 伊吾县| 定西市| 太仆寺旗| 富阳市| 连城县| 抚远县| 宜兰市| 芒康县| 崇阳县| 穆棱市| 海晏县| 石门县| 英山县| 富裕县| 麻江县| 宁国市| 桓仁| 苍溪县| 宁德市| 聂拉木县| 福贡县| 鱼台县| 威宁| 曲阜市| 英吉沙县| 贵港市| 曲沃县| 德阳市| 慈溪市| 汝州市| 宁武县| 宜黄县| 金昌市| 女性| 泰宁县| 普宁市| 明星|