La documentation indique que _component_ est passé à beginDrag (3ème paramètre), mais il semble être nul lorsqu'il est appelé ? Je ne sais pas si c'est quelque chose que je fais mal. Si cela peut aider, mon composant est à la fois une source de glissement et une cible de glissement.
Ce que je veux faire, c'est obtenir la hauteur de mon composant à l'intérieur de beginDrag, ce n'est pas quelque chose que je peux dériver des accessoires passés, j'ai donc besoin d'accéder au composant.
Il s'avère que le problème est que DnD n'aime pas les composants sans état :(
j'ai changé
const SortableListItem = (props) => {
à
class SortableListItem extends Component {
et _component_ est maintenant correctement passé à beginDrag. Il vaut la peine de mentionner que le composant sans état fonctionnait comme prévu, il était donc assez confus de savoir pourquoi _component_ est nul dans beginDrag.
Cela peut valoir la peine de mettre à jour la documentation de beginDrag pour indiquer que DnD ne fonctionne pas avec les composants sans état (en supposant que cela ne puisse pas être corrigé).
Oof, je viens de perdre quelques cycles là-dessus aussi (sauf avec le rappel hover()
place). Merci beaucoup d'avoir posté ceci... Je n'avais aucune idée de l'endroit où chercher.
J'ai également rencontré cela tout à l'heure - je pense que le problème est que les composants sans état n'ont pas d'instance publique . React-dnd devra peut-être modifier la façon dont ils utilisent les références, car receiveComponent
est appelé avec null
Cela m'est arrivé lors de la mise react-redux
niveau de DragSource
encapsulant directement un composant connect
ed.
Solution de contournement : inversez l'ordre de DragSoruce et connectez-vous. :-/
Ce problème a été automatiquement marqué comme obsolète car il n'a pas eu d'activité récente. Il sera fermé si aucune autre activité ne se produit. Merci pour vos contributions.
Commentaire le plus utile
Il s'avère que le problème est que DnD n'aime pas les composants sans état :(
j'ai changé
const SortableListItem = (props) => {
à
class SortableListItem extends Component {
et _component_ est maintenant correctement passé à beginDrag. Il vaut la peine de mentionner que le composant sans état fonctionnait comme prévu, il était donc assez confus de savoir pourquoi _component_ est nul dans beginDrag.
Cela peut valoir la peine de mettre à jour la documentation de beginDrag pour indiquer que DnD ne fonctionne pas avec les composants sans état (en supposant que cela ne puisse pas être corrigé).