Die zurückgegebene React-Komponente kann die Eigenschaft '__reactInternalInstance $ of null nicht lesen, nachdem sie versucht hat, auf das Array zuzugreifen

8

Hier ist die problematische Komponente in Frage.

%Vor%

Immer wenn ich versuche, {theList} zurückzugeben, erhalte ich die Fehlermeldung Kann die Eigenschaft nicht lesen '__reactInternalInstance $ mincana79xce0t6kk1s5g66r' von null . Wenn ich jedoch {theList} durch statisches html ersetze, druckt console.log das richtige Array von Objekten, die ich möchte. Laut den Antworten habe ich versucht, sowohl {theList} als auch theList zurückzugeben, aber das hat nicht geholfen.

In beiden Fällen gibt console.log zuerst [] aus, was ich annehme, weil componentDidMount meinen Ajax-Aufruf enthält, um json vom Server zu holen, und noch nicht vor dem ersten render () gefeuert hat. Ich habe versucht gegen zu prüfen this.props.data ist null, aber es hilft nicht.

Hier ist die Elternkomponente, wenn es hilft:

%Vor%     
astringentpattern 29.07.2016, 08:08
quelle

6 Antworten

8

Ah OK, es gab hier einige interessante Probleme, aber Sie waren so nah . Der Große, mit react müssen Sie immer ein einzelnes Top-Level-Element (z. B. ein div) zurückgeben. Also, Ihre Variable theList war eigentlich ein Array von divs. Sie können das nicht direkt zurückgeben. Aber Sie können es zurückgeben, wenn es in einem einzelnen Elternteil eingewickelt ist.

%Vor% %Vor% %Vor%

Um die Fiedel ein wenig zu erklären. Mach dir keine Sorgen über die seltsam aussehenden var $ Kram, ich stoße gerade die Ajax-Methode von jQuery aus, damit ich nach 200ms einige gefälschte Daten zurückgeben kann.

Auch für mich gibt jsfiddle eine 'schlechte Konfiguration' Nachricht, wenn ich es ausführe, aber ich schließe die Nachricht und das Ergebnis ist da. Ich weiß nicht, worum es geht.

    
David Gilbertson 29.07.2016, 10:36
quelle
4
%Vor%

sollte nur

sein %Vor%

, weil Sie zu diesem Zeitpunkt nicht in JSX sind. Was Sie dort tun, wird als

interpretiert %Vor%

Das ist die ES6-Kürzeleigenschaftensyntax.

    
Jeff 29.07.2016 09:03
quelle
1

Fehler kann auch beim Zugriff auf verschachtelten Status auftreten, der nicht existiert:

Mir fehlt der Ruf, etwas zu kommentieren, also füge ich eine Antwort für zukünftige Unterstützung hinzu - ich stieß auf das gleiche Problem aus einem anderen Grund. Offensichtlich wird der Fehler von einem früheren Fehler ausgelöst, der den internen Zustand der Reaktion auslöst, aber der Fehler wird irgendwie gefangen. github-problem # 8091

In meinem Fall habe ich versucht, auf eine Eigenschaft des Staates zuzugreifen, die nicht existierte, nachdem die Eigenschaft in den redux store verschoben wurde:

%Vor%

Ich habe den Benutzer anschließend in den Redox-Speicher verschoben und die Zeile aus dem Status gelöscht     // modifizierter Zustand     Zustand: {       Dateien: [],     }     // ... in der Render-Funktion (vergaß die Änderung):

%Vor%

Und das warf den kryptischen Fehler. Alles wurde aufgeklärt, indem man das Rendering änderte, um es auf this.props.user.username aufzurufen.

    
Reid Henderson 07.09.2017 20:02
quelle
0

Es gibt ein kleines Problem mit der if-Anweisung:

%Vor%

sollte sein:

%Vor%

this.props.data ist null, wenn der Ajax-Aufruf null zurückgibt. alternativ könnte der Code ausgefeilter sein.

%Vor%     
vijayst 29.07.2016 08:16
quelle
0

Nicht sicher, ob das so ist, aber es funktioniert für mich.

bearbeiten:

%Vor%     
alexi2 29.07.2016 08:33
quelle
0

Dieser Fehler ist aufgetreten, als ich eine zustandslose Komponente gerendert und entschieden habe, das react-root-Element (Wrapping div) nach dem Rendern mit basic dom manipulation zu entfernen.

Fazit: Seien Sie sich dessen bewusst, tun Sie es besser nicht.

    
ant45de 18.10.2017 07:08
quelle