Detaillierte Erläuterung der grundlegenden Verwendung der Routing-Bibliothek react-navigation6.x

Detaillierte Erläuterung der grundlegenden Verwendung der Routing-Bibliothek react-navigation6.x

React-Native-Projektinitialisierung

Öffnen Sie cmd und wechseln Sie per CD zu dem Ordner, in dem Sie das rn-Projekt erstellen möchten.

npx reagieren-native init testRN

Hier ist mein Projektname auf testRN eingestellt, Sie können ihn selbst festlegen.

Installieren Sie das React-Native-Projekt

Verbinden Sie die virtuelle Android-Maschine oder die reale USB-Debugging-Maschine, wechseln Sie per CD in das erstellte Projektstammverzeichnis, installieren und starten Sie yarn android.

Garn Android

Wenn die Erstinstallation abgeschlossen ist und das Mobiltelefon nicht getrennt ist, müssen Sie nur die Projekt-App in der virtuellen Maschine oder auf dem Mobiltelefon eingeben und dann den PC im Stammverzeichnis des Projekts starten, ohne es erneut zu installieren. Möglicherweise müssen Sie es nach der Trennung erneut installieren.

Garnanfang

Nach dem Start drücken Sie zum Aktualisieren r in der cmd-Oberfläche.

Installation der Routing-Bibliothek „React-Navigation“

Der Inhalt basiert auf Android-Tests, iOS habe ich nicht getestet.

Installieren Sie die folgenden Pakete auf einmal.

Garn hinzufügen @react-navigation/native react-native-screens react-native-safe-area-context @react-navigation/native-stack

Für zusätzliche Konfigurationsmöglichkeiten von Android ändern Sie die Datei MainActivity.java in testRN\android\app\src\main\java\com\testrn .

Bildbeschreibung hier einfügen

Code:

  importiere android.os.Bundle;

  @Überschreiben
  geschützt void onCreate(Bundle savedInstanceState) {
    super.onCreate(null);
  }

Verwenden der Routing-Bibliothek

Ändern Sie app.js in den folgenden Code

importiere * als React von „react“;
importiere {Ansicht, Text} von „react-native“;
importiere { NavigationContainer } von '@react-navigation/native';
importiere { createNativeStackNavigator } aus '@react-navigation/native-stack';

Funktion HomeScreen() {
  zurückkehren (
    <Ansichtsstil={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
      <Text>Startbildschirm</Text>
    </Anzeigen>
  );
}

const Stack = createNativeStackNavigator();

Funktion App() {
  zurückkehren (
    // NavigationContainer ist ein Container für Routen, in den alle zugehörigen Inhalte eingefügt werden <NavigationContainer>
      <Stapel.Navigator>
        {/* Stack.Screen ist das geroutete Fenster, Name legt den Fensternamen für den Sprung fest und der Komponenteninhalt des Fensters wird in der Komponente platziert */}
        <Stack.Screen name="Home" Komponente={HomeScreen} />
      </Stack.Navigator>
    </NavigationContainer>
  );
}

Standard-App exportieren;

Bildbeschreibung hier einfügen

Routensprung und Routenparameterübertragung

importiere * als React von „react“;

// Schaltfläche „Hinzufügen“
importiere {Button, Ansicht, Text} von „react-native“;
importiere { NavigationContainer } von '@react-navigation/native';
importiere { createNativeStackNavigator } aus '@react-navigation/native-stack';
                    
                // Navigationsparameter hinzufügen Funktion HomeScreen({navigation}) {
  zurückkehren (
    <Ansichtsstil={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
      <Text>Startbildschirm</Text>
      {/* Sprungschaltfläche hinzufügen */}
      <Schaltfläche
        Titel="Zu den Details gehen"   
        // navigation.navigate('Details') wird zum Springen verwendet, wobei Details auf den entsprechenden Fensternamen zeigt
        beim Drücken={() => navigation.navigate('Details')}
      />
    </Anzeigen>
  );
}

Funktion DetailsScreen() {
  zurückkehren (
    <Ansichtsstil={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
      <Text>Detailbildschirm</Text>
    </Anzeigen>
  );
}

const Stack = createNativeStackNavigator();

Funktion App() {
  zurückkehren (
    // NavigationContainer ist ein Container für Routen, in den alle zugehörigen Inhalte eingefügt werden <NavigationContainer>
      <Stapel.Navigator>
        {/* Stack.Screen ist das geroutete Fenster, Name legt den Fensternamen für den Sprung fest und der Komponenteninhalt des Fensters wird in der Komponente platziert */}
        <Stack.Screen name="Home" Komponente={HomeScreen} />
        <Stack.Screen name="Details" Komponente={DetailsScreen} />
      </Stack.Navigator>
    </NavigationContainer>
  );
}

Standard-App exportieren;

Routentitel festlegen

Standardmäßig verwendet das Fenster den Namen als Titel, Sie können ihn jedoch auch selbst festlegen.

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

Verwenden Sie als Navigationstitel „Mein Zuhause“ anstelle von „Home“.

Wenn von einer Seite der ersten Ebene zu einer Seite der zweiten Ebene gesprungen wird, werden normalerweise je nach Inhalt unterschiedliche Titel angezeigt. Zu diesem Zeitpunkt ist es erforderlich, den Titel dynamisch zu konfigurieren.

<Stack.Screen name="Details" Komponente={DetailsScreen}
   Optionen={({ Route }) => ({ Titel: route.params.title })}
/>

Übergeben Sie dann einfach den Titel, wenn Sie zur Seite der ersten Ebene springen.

<Schaltfläche
   Titel="Zu den Details gehen"
  // navigation.navigate('Details') wird zum Springen verwendet, wobei Details auf den entsprechenden Fensternamen zeigt
   onPress={() => navigation.navigate('Details', { title: 'Sekundäre Seite' })}
/>

Beachten Sie: Wenn die Seite der ersten Ebene keinen Titel übergibt, ist es am besten, ein leeres Objekt zu übergeben oder den Anfangswert im Fenster der zweiten Ebene festzulegen, da sonst ein Fehler gemeldet wird.

Sie können den Titel auch manuell mit navigation.setOptions() aktualisieren, wodurch die Eigenschaften in den Optionen auf dem Bildschirm geändert werden.

<Schaltfläche
   title="Titel aktualisieren"
   onPress={() => navigation.setOptions({ title: 'Aktualisiert!' })}
/>

Benutzerdefinierte Titelkomponente

Legen Sie den HeaderTitle-Rückruf fest, um eine funktionale Komponente zurückzugeben, die angepasst werden kann und ein Bild sein kann.

Funktion LogoTitel() {
  zurückkehren (
    <Bild
      Stil={{ Breite: 50, Höhe: 50 }}
      Quelle = {erfordert('./src/img/details.png')}
    />
  );
}

<Stack.Screen Name="Home" Komponente={HomeScreen}
   Optionen={{
     Titel: 'Mein Zuhause',
     HeaderTitle: (Requisiten) => <LogoTitle {...Requisiten} />
   }}
/>

Titelschaltfläche

Außerdem gibt es in den Bildschirmoptionen eine Kopfzeile rechts, in der Sie die Schaltfläche platzieren können.

        <Stack.Screen Name="Home" Komponente={HomeScreen}
          Optionen={{
            Titel: 'Mein Zuhause',
            headerTitle: (Requisiten) => <LogoTitle {...Requisiten} />,
            headerRight: () => (
              <Schaltfläche
                onPress={() => alert('Das ist ein Button!')}
                Titel="Info"
                Farbe = "fff"
              />
            ),
          }}
        />

headerBackImageSource kann das Bild der Zurück-Schaltfläche ändern.

        <Stack.Screen name="Details" Komponente={DetailsScreen}
          Optionen={({ Route }) => (
            {
              Titel: route.params.title,
              headerBackImageSource: detailsImg,
            }
          )}
        />

Dies ist das Ende dieses Artikels über die grundlegende Verwendung der Routing-Bibliothek react-navigation6.x. Weitere relevante Inhalte zur Routing-Bibliothek react-navigation6.x finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • React-Navigation ändert dynamisch den Inhalt des Titels
  • Zusammenfassung der bei der Verwendung von React Navigation aufgetretenen Probleme
  • React Native react-navigation Navigationsnutzungsdetails
  • So ermitteln Sie, ob der Benutzer angemeldet ist, und springen zur Anmeldeseite in der React-Navigation
  • Detaillierte Erläuterung der Cross-Tab-Routing-Verarbeitung in React Native mithilfe der React-Navigation
  • React Native Learning Tutorial: Detaillierte Erklärung der benutzerdefinierten Navigationsleiste
  • React-natives Beispiel für die Verwendung von React-Navigation für die Seitensprungnavigation

<<:  So analysieren Sie die Leistung von MySQL-Abfragen

>>:  Detaillierte Erklärung des Problems bei der Kombination von CSS-Ellipsen und -Auffüllungen

Artikel empfehlen

Webdesign-Erfahrung: Das Navigationssystem schlank machen

<br />Bei Diskussionen mit meinen Freunden h...

JS-Code zum Erzielen eines Seitenwechseleffekts

In diesem Artikelbeispiel wird der spezifische Co...

Ein Beispiel für die Berechnungsfunktion calc in CSS im Website-Layout

calc ist eine Funktion in CSS, die zum Berechnen ...

Vue3.0 verwendet das Plug-In vue-grid-layout, um Drag-Layout zu implementieren

Inhaltsverzeichnis 1. Plugins 2. Zwischenspiel 3....

Detaillierte Erklärung des Mindestbreitenwerts von Inline-Blöcken in CSS

Vorwort Vor kurzem habe ich mir abends etwas Zeit...

So konfigurieren Sie Linux CentOS für die regelmäßige Ausführung von Skripten

Oft möchten wir, dass der Server regelmäßig ein S...

Natives JS zum Erzielen von Verzeichnis-Scrolleffekten

Hier ist ein Text-Scrolling-Effekt, der mit nativ...

Vue3 kapselt die Textskelett-Effektkomponente der Seitennavigation

Vue3-Projektkapselung Seitennavigation Textskelet...

Vue-Statusverwaltung: Verwendung von Pinia statt Vuex

Inhaltsverzeichnis 1. Was ist Pinia? 2. Pinia ist...

Erfahren Sie mehr über die am häufigsten verwendeten JavaScript-Ereignisse

Inhaltsverzeichnis JavaScript-Ereignisse: Häufig ...