Verfahre Kinder von Kindern und füge allen Eingängen Funktionen hinzu, während andere Kinder unberührt bleiben

8

Ich habe versucht, dies jetzt für eine Weile in Gang zu bringen und bin mir nicht sicher, wie ich das Folgende machen soll. Meine Formularkomponente enthält untergeordnete Elemente, die sowohl reguläre HTML-Markups als auch Eingaben enthalten. Wenn das Kind eine Eingabe ist, möchte ich die Funktionen attachToForm und detachFromForm hinzufügen. Wenn es sich nicht um eine Eingabe handelt, möchte ich die Kinder weiterhin durchlaufen, um sicherzustellen, dass das Element kein untergeordnetes Eingabefeld hat. Ob das Element ein Eingang ist oder nicht, ich möchte immer noch, dass es auf meiner Seite erscheint, ich möchte nur die Funktionen zu den Eingängen hinzufügen.

Das Problem ist, ich kann nur meine Funktion erhalten, nur die Eingänge zurückzugeben, die Etiketten und den Titel zu entfernen. Ich weiß, dass, weil ich nur Elemente mit Eingaben zu newChildren hinzufüge, aber wenn ich die anderen Elemente im else if Abschnitt schiebe, bekomme ich doppelte und ich kann an eine andere Weise denken, dies zu tun. Ich bin nicht sicher, ob ich grundlegendes JS nicht verstehe oder eine Gehirnlücke habe.

%Vor%

Bearbeiten: Nicht sicher, wenn nötig, aber dies ist und Beispiel Formular im Traversing

%Vor%

Nebenbei habe ich viel einfacher damit angefangen, folgendes zu tun, aber zu bekommen:

  

"Die Eigenschaft attachToForm kann nicht hinzugefügt werden, das Objekt ist nicht erweiterbar"

Wenn jemand weiß, warum, lass es mich wissen.

%Vor%     
ReganPerkins 13.11.2015, 22:30
quelle

1 Antwort

1

Wenn Sie eine Fehlermeldung abfragen, haben Sie ein Problem mit dem unveränderlichen prop -Objekt. Ausgehend von React 0.14 ist der prop "eingefroren":

  

Das props -Objekt ist jetzt eingefroren, so dass die Requisiten nach dem Erstellen eines Komponentenelements nicht mehr unterstützt werden. In den meisten Fällen sollte stattdessen React.cloneElement verwendet werden. Diese Änderung macht Ihre Komponenten leichter verständlich und ermöglicht die oben erwähnten Compiler-Optimierungen.

Blogpost zu diesem Thema

Also versuchen Sie irgendwo in Ihrem Code ein prop -Objekt zu erweitern, das einen Fehler verursacht.

Sie könnten verschiedene Teile Ihrer prop Interaktionen mit try..catch construction umbrechen, was Ihnen den genauen Problemort zeigt.

    
Eugene Tiurin 17.11.2015 09:17
quelle

Tags und Links