L'utilisation de connectDragSource avec un élément qui utilise la nouvelle API createRef (introduite dans React 16.3.0) au lieu des références de rappel provoque le blocage de l'application avec l'erreur : TypeError: previousRef is not a function
.
Voici ce que le navigateur affiche :
return (0, _react.cloneElement)(element, {
ref: function ref(node) {
newRef(node);
if (previousRef) {
previousRef(node); // << fails with new refs
}
}
});
Même problème. C'est la première fois que j'ai enfin la chance d'utiliser les nouvelles références et que react-dnd me gêne.
À long terme, je ne suis pas sûr de l'ensemble du modèle react-dnd consistant à utiliser findDOMNode et à remplacer la référence. Lorsque React a de nouveaux createRef et withRef. Nouvelle API forwardRef . Et un certain nombre d'API commencent à utiliser des accessoires de rendu.
Mais pour l'instant, il devrait suffire de vérifier si previousRef est un objet avec une propriété current
et de le définir au lieu de l'appeler en tant que fonction.
Quelqu'un a-t-il des solutions pour cela, tout en utilisant createRef() ?
Je pourrai approfondir cela plus tard, mais un bac à sable démontrant ce que vous recherchez serait formidable ici.
Je suis également confronté au même problème.
@darthtrevino https://codesandbox.io/s/733onvqwl6 peut-être que ce bac à sable aide.
Même problème. Dois-je revenir à l'ancienne référence de rappel, ou existe-t-il un moyen de contourner ce problème ?
+1
l'utilisation de React.createRef()
et ref.current
planter l'application.
Quand cela sera-t-il corrigé ?
Toujours pas corrigé :/
Je vais prendre un peu de temps après la réaction de la conf pour examiner cela
J'ai pu utiliser une solution de contournement comme suggéré en encapsulant le ref div dans un autre div vide.
Exemple:
<div>
<div
style={{
position: "relative",
borderStyle: "dashed",
width: 300,
height: 200,
position: "relative"
}}
ref={this.myRef}
/>
</div>
toute mise à jour sur ce @darthtrevino. ce serait bien d'entendre une mise à jour
@darthtrevino Rencontré le même problème, pourrions-nous obtenir un ETA sur le correctif?
devrait être aujourd'hui je pense. Faites-moi savoir s'il y a des problèmes avec la version que j'ai coupée plus tard
Commentaire le plus utile
Même problème. Dois-je revenir à l'ancienne référence de rappel, ou existe-t-il un moyen de contourner ce problème ?