Der React-Container-Bereich wird nicht von der Komponente geerbt

Giedrius

Ich habe Container und Komponente getrennt und stehe nun vor den Problemen mit dem erneuten Rendern der Komponente.

render() {
    return <DomainEdit schema={this.props.schema} domain={this.domain} formData={this.props.formData} updateSubType={this.updateSubType} types={this.props.types}/>;
}

Ich sende eine updateSubTypeMethode, die eine Rückrufmethode ist, wenn etwas im Formular geändert wird.

Nachdem es geändert wurde, schicke ich zurück, was geändert wurde, und muss this.props.schema aktualisieren, um die Komponente mit dem neuen Schema neu zu rendern.

Das Problem, mit dem ich konfrontiert bin, ist, dass die Callback-Methoden thisder Geltungsbereich der Komponente und nicht der Container selbst sind, mit anderen Worten, die Komponente hat nur die Argumente, die ich in der Render-Methode gesendet habe, was ein Problem darstellt, da ich nicht auf den Container zugreifen kann props und rendern Sie die Komponente neu.

Wie könnte ich die Komponente in der Rückrufmethode, die im Container definiert ist, neu rendern?

remix23

Es sieht nach einem Kontextbindungsproblem aus.

Wenn updateSubType innerhalb von DomainEdit aufgerufen werden soll und thisdieser Callback immer noch auf die Containerreferenz verweist, müssen Sie updateSubType an die Containerinstanz binden.

Dafür stehen zwei Möglichkeiten zur Verfügung: Im Konstruktor des Containers neu definieren this.updateSubType = this.updateSubType.bind(this);

Oder wenn Sie ES6 verwenden, definieren Sie updateSubType auf diese Weise:

updateSubType = () => {
    ...method definition
}

Die Notation der Pfeilfunktion ( () => {}) bindet die Funktion automatisch an die umgebende Instanz.

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

Annotation wird nicht von der Schnittstellenmethode geerbt

Metaklassen: Warum wird die Methode nicht von der Basisklasse geerbt?

Die übergeordnete Klasse wird vom untergeordneten Element in der untergeordneten Komponente, die scss verwendet, nicht geerbt

Der React-Konstruktor wird nicht aufgerufen, wenn eine Requisite von der übergeordneten Komponente aktualisiert wird

React-Native: Breite wird nicht von der Teilansicht geerbt, wenn alignItems auf 'center' gesetzt ist.

<mat-error> funktioniert nicht in ControlValueAccessor, wenn Validierungen von benutzerdefiniertem formControl in der übergeordneten Komponente geerbt werden

$ rootScope wird im Bereich der Komponente $ gespeichert

Klammer-Initialisierungsliste kann nicht verwendet werden, während von der Freundesklasse geerbt wird

Der in Abstract Class implementierte Action-Listener wird nicht von den Klassen geerbt, die ihn erweitern

Warum wird das JsonConverter-Attribut nicht von der Schnittstelle geerbt?

InheritableThreadLocal-Wert, der nicht von ExecutorService-Threads geerbt wird

Azure DevOps Shared Query-Berechtigung wird nicht von der Projektadministratorgruppe geerbt

Der Listener wird beim Entfernen der Komponente in React nicht entfernt

Warum wird der folgende Fehler angezeigt: Enzyme Internal Error: Der konfigurierte Enzymadapter hat nicht von der EnzymeAdapter-Basisklasse geerbt

Daten werden nicht mit React-Redux (von mapStateToProps) im Container an die Ansicht der Komponente übergeben

Der Bereich innerhalb von ng-repeat wird nicht definiert

Winkelvariable der untergeordneten Komponente wird nicht aktualisiert, wenn sie von der übergeordneten Komponente aufgerufen wird

Text, der in dieser React-Anwendung nicht von einer Komponente abgerufen wird

Der Stil wird nach dem Importieren von CSS in die React-Komponente nicht hinzugefügt

Identifizieren Sie die Basisklasse, von der eine Eigenschaft geerbt wird

React-Komponente kann nicht ausgehängt werden, da false von der übergeordneten Komponente zurückgegeben wird

Zustand wird in der Komponente render() in React Native nicht beibehalten

Warum wird die React-Komponente nicht in der App angezeigt?

Komponente wird nicht innerhalb der Kartenfunktion gerendert - React Native

Ein Fehler, der von einer React-Komponente ausgelöst wird und im Fangblock eines nicht verwandten Versprechens abgefangen wird

Wenn ich einen Bereich von y angebe, wird der Graph in diesem Bereich nicht richtig angezeigt

Warum funktioniert diese SFINAE nicht mit enable_if, wenn ein bedingter Zweig von der Basisklasse geerbt wird?

Der ngrx-Effekt wird nicht aufgerufen, wenn eine Aktion von der Komponente ausgelöst wird

Wie wird der zugrunde liegende Vorlagentyp des Vorlagenparameters bestimmt, der von einer Klassenvorlage geerbt wird?

TOP Liste

  1. 1

    So legen Sie mit dem Interface Builder unterschiedliche führende Speicherplätze für unterschiedliche Geräte fest

  2. 2

    Fügen Sie eine weitere Schaltfläche zu gwt Suggest Box hinzu

  3. 3

    Wie konvertiere ich einen Vektor von Bytes (u8) in eine Zeichenfolge?

  4. 4

    Wie kann ich in SCSS mehrere Klassen zu einer einzigen kombinieren?

  5. 5

    Wie konvertiert man einen Datenrahmen im langen Format in eine Liste mit einem geeigneten Format?

  6. 6

    Speichern Sie ein MPAndroidChart-Diagramm in einem Bild, ohne es in einer Aktivität anzuzeigen

  7. 7

    Gruppieren Sie Datenrahmenspalten nach ihrem Datum (die Spaltentitel enthalten) und fassen Sie die Instanzen von Einsen und Nullen in R . zusammen

  8. 8

    Tomcat - Leiten Sie den alten Kontextstamm zum neuen Kontextstamm um

  9. 9

    Eclipse Oxygen - Projekte verschwinden

  10. 10

    Wie wählt man Unterschiede mit drei Tabellen aus?

  11. 11

    Tic Tac Toe-Spiel im React-Reset-Button funktioniert nicht

  12. 12

    So berechnen Sie die Verfügbarkeit von Anwendungen (SLA)

  13. 13

    ElasticSearch BulkShardRequest ist aufgrund von org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor fehlgeschlagen

  14. 14

    Wie kann ich den Kaskadenmodus global einstellen?

  15. 15

    Python: Spalten mit demselben Namen zusammenführen, wobei der Mindestwert beibehalten wird

  16. 16

    So erhalten Sie eine gleichmäßige Höhe für alle Eingabefelder

  17. 17

    Wie erstelle ich einen neuen übergeordneten Knoten außerhalb der .ref (/ path) in der Firebase-Echtzeitdatenbank mithilfe von Cloud-Funktionen (Typescript)?

  18. 18

    Was ist schneller: SUM über NULL oder über 0?

  19. 19

    Wie kann ich eine verschachtelte Schleife mit lapply in R ersetzen?

  20. 20

    Kann ich ein Tkinter-Canvas erstellen, das mehrere Zeilen in einem Text-Widget umfasst?

  21. 21

    Ärgerliches Problem mit yaml, das ich nicht lösen kann

heißlabel

Archiv