Nativ reaktiv: Ein Kind, das keinen YogaNode oder Elternknoten hat, kann nicht hinzugefügt werden

10

Habe gerade angefangen, reaktionsnormal zu lernen,

Ich habe eine separate Datei flexdemo.js erstellt und die Komponente wie folgt erstellt:

%Vor%

und App.js Datei ist wie folgt:

%Vor%

Das gibt mir diesen Fehler:

Wenn ich jetzt versuche, den Code durch Hinzufügen von flexdemo.js-Code in App.js auszuführen, funktioniert alles.

Die App.js wurde folgendermaßen geändert:

%Vor%

    
TapanHP 06.10.2017, 12:07
quelle

5 Antworten

15

Entfernen Sie Kommentare in der Komponente.

    
Roshan Salian 18.12.2017 15:39
quelle
8

Ich konnte das Problem mit dem von Ihnen angegebenen Code reproduzieren. Die Lösung ist zweifach:

  1. In Ihrer Datei "flexdemo.js" sollten Sie die Leerzeichen aus den <View> -Tags entfernen. Sie werden als Text betrachtet, und Text ist nur innerhalb einer <Text> -Komponente zulässig. Ich würde empfehlen, dass Sie Ihre <View> -Tags selbstschließend machen, bis sie etwas Inhalt haben, um sich in Zukunft von diesem Problem fernzuhalten, so:

    %Vor%

    Dies wird Ihre Komponenten aber immer noch fehlerhaft machen, da Sie nichts auf dem Bildschirm sehen werden.

  2. Damit Ihre flexiblen Blautöne angezeigt werden, müssen Sie entweder der Komponente <View> in der Datei App.js Flex hinzufügen oder (je nachdem, was Ihre nächsten Schritte sind, denke ich) sie entfernen und rende deine <FlexibleViews> als root-Komponente, da es im Grunde eine <View> -Komponente mit einigen Kindern ist.

Óskar Helgi Adamsson 23.11.2017 19:40
quelle
4

Es kann mehrere Gründe für dieses Problem geben. Hier die drei, die ich am meisten gesehen habe:

  1. Kommentare könnten die Ursache sein. Aber statt Kommentare zu entfernen machen sie arbeiten:

    Im return() -Part müssen Variablen in {} like eingebunden werden {this.state.foo} , so dass das Umbrechen der Kommentare gut funktioniert ...

    %Vor%

    ... solange sie nicht das erste oder letzte Element in der return-Anweisung sind:

    %Vor%
  2. Bedingtes Rendering könnte die Ursache sein. Wenn myCheck nicht definiert ist oder eine leere Zeichenfolge, die fehlschlagen kann:

    %Vor%

    aber doppelte Negation hinzufügen !! funktioniert:

    %Vor%
  3. Whitespaces (oder tatsächlich irgendwelche Zeichenfolgen) innerhalb einer Komponente können verursachen dies, wenn nicht in <Text> -Komponente:

    Text in einer Ansicht zum Beispiel:

    %Vor%

    Aber auch der winzige Abstand zwischen zwei Komponenten:

    %Vor%

    Aber funktioniert, wenn in einer neuen Zeile:

    %Vor%

Leider führen diese Fallstricke nicht immer zu Fehlern. Manchmal arbeiten sie. Ich schätze, das hängt davon ab, welche der vielen Tools / Lymes / Komponenten du verwendest und deren Versionen in deiner App.

    
Paul 06.03.2018 11:49
quelle
1

Ich downgrade reagieren native Version, dann habe ich einen anderen Fehler, im Grunde, was es war ich hatte eine einfache Zeichenfolge in einer Ansicht, etwa so:

%Vor%

Ich musste die Zeichenfolge mit einer Textkomponente wie dieser umschließen:

%Vor%

hoffe das hilft

    
jack.the.ripper 23.11.2017 15:03
quelle
1

Dieser Fehler stammt normalerweise von einem der folgenden Fehler

  • Entfernen Sie unnötige Kommentare und entfernen Sie Kommentare aus der Rückgabefunktion.
  • Suche nach dem richtigen Variablennamen.
  • Suche nach einem unbeabsichtigten Semikolon oder einer falschen Syntax
Rohith M 13.03.2018 09:28
quelle