React-dnd: Der Annahmetyp useDrop DropTargetHookSpec sollte einen Funktionstyp enthalten

Erstellt am 20. Aug. 2020  ·  3Kommentare  ·  Quelle: react-dnd/react-dnd

Beschreiben Sie den Fehler
Ihre Dokumentation von useDrop besagt, dass das Spezifikationsobjektmitglied accept "Eine Zeichenfolge, ein ES6-Symbol, ein Array von beidem oder eine Funktion, die eines dieser beiden zurückgibt, gegebene Props der Komponente."
Aber im Code ist accept als TargetType definiert, was string | symbol oder ein Array davon ist.

Erwartetes Verhalten
accept sollte ein Typ sein, bei dem eine Funktion möglich ist, die TargetType zurückgibt.

Zusätzlicher Kontext
Ich möchte accept dynamisch aktualisieren. Ich dachte, dies wäre möglich, indem ich den Wert von $ accept von useDrop , aber das funktioniert nicht. Ich sehe derzeit nicht, wie ich dies anders machen soll, und ich kann das in der Dokumentation beschriebene Verhalten nicht finden.

Hilfreichster Kommentar

Ich weiß, dass dies keine ideale Lösung ist, aber bis dies gelöst ist und wir Funktionen zur Erzeugung von Zieltypen haben können, besteht eine Problemumgehung darin, eine key -Eigenschaft zu verwenden, die Ihren akzeptierten Typen in der Komponente entspricht, die Ihre enthält Ziel fallen lassen. Dies würde sicherstellen, dass es erneut bereitgestellt wird, sobald Sie den/die akzeptablen Typ(en) ändern. Ich bin heute selbst auf genau dieses Problem gestoßen.

Alle 3 Kommentare

Ich weiß, dass dies keine ideale Lösung ist, aber bis dies gelöst ist und wir Funktionen zur Erzeugung von Zieltypen haben können, besteht eine Problemumgehung darin, eine key -Eigenschaft zu verwenden, die Ihren akzeptierten Typen in der Komponente entspricht, die Ihre enthält Ziel fallen lassen. Dies würde sicherstellen, dass es erneut bereitgestellt wird, sobald Sie den/die akzeptablen Typ(en) ändern. Ich bin heute selbst auf genau dieses Problem gestoßen.

Ich habe das auch bemerkt, aber es umgangen, indem ich canDrop verwendet habe.

Ich weiß, dass dies keine ideale Lösung ist, aber bis dies gelöst ist und wir Funktionen zur Erzeugung von Zieltypen haben können, besteht eine Problemumgehung darin, eine key -Eigenschaft zu verwenden, die Ihren akzeptierten Typen in der Komponente entspricht, die Ihre enthält Ziel fallen lassen. Dies würde sicherstellen, dass es erneut bereitgestellt wird, sobald Sie den/die akzeptablen Typ(en) ändern. Ich bin heute selbst auf genau dieses Problem gestoßen.

Nur um diesen Kommentar zu wiederholen: Ich hatte eine Situation, in der ich eine Ternäre hatte, die zwei Versionen derselben Komponente basierend auf einem booleschen Wert renderte. Clever React erkannte, dass es sich um die gleiche Komponente handelt, aber mit unterschiedlichen Requisiten. Obwohl ich versucht habe, diese Dreiergruppe zu verwenden, um sie als unabhängige Knoten zu rendern, die basierend auf dem booleschen Wert bereitgestellt/entfernt werden, wurde tatsächlich neu gerendert, anstatt erneut bereitgestellt zu werden. Daher basierte accept auf den ursprünglichen Requisiten, nicht auf den neuen, und useDrop wird nicht basierend auf dieser Requisitenänderung aktualisiert.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen