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

So platzieren Sie große Bilder auf kleinem Raum einer Webseite

Originalquelle: www.bamagazine.com Enge Bereiche ...

js, um einen einfachen Front-End-Paging-Effekt zu erzielen

Einige Projekte haben ein relativ einfaches Gesch...

Analyse des Tutorials zur Implementierung der Remote-Anmeldung unter Linux

Linux wird im Allgemeinen als Server verwendet un...

Navicat für MySQL-Tutorial

Zuerst müssen Sie Navicat für MySQL herunterladen...

Beispielcode zur Verwendung der Elementkalenderkomponente in Vue

Schauen Sie sich zunächst das Wirkungsdiagramm an...

Detaillierte Erläuterung der Docker Volume-Berechtigungsverwaltung

Das Datenvolumen ist ein wichtiges Konzept von Do...

Befehle zum Deaktivieren und Aktivieren von MySQL-Fremdschlüsseleinschränkungen

Deaktivieren und Aktivieren von MySQL-Fremdschlüs...

Detaillierte Erklärung der MySql-Installation und des Logins

Überprüfen Sie, ob MySQL bereits unter Linux inst...

So installieren Sie Windows Server 2008 R2 auf einem Dell R720-Server

Hinweis: Alle Bilder in diesem Artikel stammen au...