1. Kontext1. Anwendungsszenarien Stellen Sie sich ein Szenario vor, in dem wir Werte an untergeordnete Komponenten übergeben möchten. Was sollen wir tun? Wenn Sie Requisiten verwenden, um es Schicht für Schicht weiterzugeben, wird das sehr umständlich! Eine bessere Möglichkeit: Nutzen Sie 2. Nutzungsschritte
const { Anbieter, Verbraucher } = React.createContext()
<Anbieter> <div Klassenname="App"> <Kind1 /> </div> </Anbieter>
<Anbieterwert="pink">
<Verbraucher> {data => <span>Der Datenparameter stellt die empfangenen Daten dar-- {data}</span>} </Verbraucher> 3. Fazit
2. Requisiten im Detail1. Das Eigentum der Kinder Kinderattribut: stellt die untergeordneten Knoten des Komponenten-Tags dar. Wenn das Komponenten-Tag untergeordnete Knoten hat, haben die Requisiten dieses Attribut Die Eigenschaft children ist die gleiche wie bei normalen Props und ihr Wert kann alles sein (Text, Beschriftungen, Komponenten oder sogar Funktionen). Der Code lautet wie folgt (Beispiel): Funktion Hallo(Requisiten) { zurückkehren ( <div> Unterknoten der Komponente: {props.children} </div> ) } <Hallo>Ich bin ein untergeordneter Knoten</Hallo> 2. Validierung der Requisiten Bei Komponenten handelt es sich bei Props um einen Container für externe Daten und es gibt keine Garantie für das Format der von Komponentenbenutzern übergebenen Daten. Wenn das Format der eingehenden Daten falsch ist, kann dies zu einem Fehler in der Komponente führen Hauptproblem: Keine weiteren Fehlermeldungen außer Syntaxfehlermeldungen Der Code lautet wie folgt (Beispiel): // Erstellte Komponentenfunktion App(props) { const arr = props.farben const list = arr.map((Element, Index) => <li Schlüssel={index}>{Element}</li>) zurückkehren ( <ul>{Liste}</ul> ) } // Bei Verwendung von Komponenten <App colors={19} /> Props-Validierung : ermöglicht Ihnen, den Typ und das Format von Props beim Erstellen einer Komponente anzugeben Zweck : Erfassen Sie Fehler, die durch Requisiten bei der Verwendung von Komponenten verursacht werden, geben Sie klare Fehleraufforderungen aus und erhöhen Sie die Robustheit der Komponenten 3. Schritte zur Verwendung der Props-Validierung
Importiere PropTypes aus „Prop-Types“ Funktion App(Requisiten) { zurückkehren ( <h1>Hallo, {props.colors}</h1> ) } App.propTypes = { // Es wird vereinbart, dass die Eigenschaft colors vom Typ array ist // Wenn der Typ falsch ist, wird ein eindeutiger Fehler gemeldet, um die Fehleranalyse zu erleichtern colors: PropTypes.array } 4. Regeln für die Einschränkung bei der Validierung von Requisiten Gängige Typen: React-Elementtyp: Erforderlich: Objekte einer bestimmten Struktur: // Allgemeiner Typ optionalFunc: PropTypes.func, // Erforderliche Funktion: PropTypes.func.isRequired, // Objekt mit spezifischer Struktur optionalObjectWithShape: PropTypes.shape({ Farbe: PropTypes.string, Schriftgröße: PropTypes.number }) 5. Standardmäßige Requisitenwerte Szenario : Paginierungskomponente → Anzahl der pro Seite angezeigten Elemente Funktion : Legen Sie Standardwerte für Requisiten fest, die wirksam werden, wenn keine Requisiten übergeben werden Funktion App(Requisiten) { zurückkehren ( <div> Der Standardwert von Props wird hier angezeigt: {props.pageSize} </div> ) } //Standardwerte festlegen App.defaultProps = { Seitengröße: 10 } // Übergeben Sie nicht das pageSize-Attribut <App /> ZusammenfassenDieser Artikel endet hier. Ich hoffe, er kann Ihnen helfen. Ich hoffe auch, dass Sie mehr Inhalten auf 123WORDPRESS.COM mehr Aufmerksamkeit schenken können! Das könnte Sie auch interessieren:
|
<<: Die Beziehung zwischen Webseitenerstellung und Dampfbrötchen (Erfahrungsaustausch)
>>: Implementierung der CSS-Bildlaufleisten-Stileinstellungen
Syntaxzusammensetzung: 1 Anmerkungsinformationen ...
In diesem Artikelbeispiel wird der spezifische Co...
Vor Kurzem musste ich das Projekt für die Mitglie...
Inhaltsverzeichnis 1. Hintergrund des Problems: 2...
Reproduktion des Problems Alibaba Cloud Server, b...
Problembeschreibung In unseren Projekten sind hor...
Inhaltsverzeichnis Neuen Benutzer anlegen Neue Be...
Ich habe die Mysql FIND_IN_SET-Funktion vor einig...
Hintergrund Ich möchte die Webpack-Version überpr...
In diesem Artikel wird die MySQL-Vorkompilierungs...
Inhaltsverzeichnis Hierarchie des Tomcat-Klassenl...
Das Erscheinungsbild einer Webseite hängt maßgebl...
DOMContentLoaded-Ereignis Es wird buchstäblich au...
1. Holen Sie sich das Bild #Geben Sie die Version...
1. Verwenden Sie den Curl-Befehl für den Standard...