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.
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.
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.