React-dnd: Ajout de la prise en charge du type de référence createRef React 16.3

Créé le 3 avr. 2018  ·  13Commentaires  ·  Source: react-dnd/react-dnd

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 .

https://github.com/facebook/react/pull/12162

enhancement

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 ?

Tous les 13 commentaires

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

Cette page vous a été utile?
0 / 5 - 0 notes