Mise à niveau vers React Native 0.62.0 Obtention d'un panneau d'avertissement - "L'appel de` getNode () `sur la référence du composant animé n'est plus nécessaire


9

Je viens de mettre à niveau mon application native React vers la 0.62.0, et maintenant mon application continue de recevoir ce signe d'avertissement

ReactNativeFiberHostComponent: Calling `getNode()` on the ref of an Animated component 
is no longer necessary. You can now directly use the ref instead. 
This method will be removed in a future release.

Je ne sais pas pourquoi ce problème apparaît? Quelqu'un peut-il expliquer?

Je vois aussi Stack

ref.getNode |
createAnimatedComponent.js:129:20

SafeView#_updateMeasurements | index.js:192:14

SafeView#componentDidUpdate | index.js:154:9

Mise à jour

Je pense que cela pourrait provenir de SafeAreaView de react-navigation

Réponses:


4

Je suis également venu à cet avertissement après avoir mis à niveau le ro RN 0.62.1, et je ne l'ai pas utilisé getNode()du tout, il s'avère qu'il provenait d'une dépendance que j'utilise, appelée react-native-snap-carouselparce qu'ils l'ont construite avec FlatList et éventuellement en utilisant getNode()également.

Et maintenant, il y a un problème ouvert à ce sujet dans leur dépôt GitHub que nous pouvons suivre, voici le lien vers le problème

Mise à jour

cela vient également du package react-native-safe-area-view, votre application utilise peut-être ce package et maintenant, ils ont publié une nouvelle version pour corriger la getNode()dépréciation, voir ce PR

donc au lieu de réparer le fichier directement vous-même, il vous suffit de mettre à jour le package, il suffit d'exécuter: npm i react-native-safe-area-view

J'espère que c'est de l'aide :)


2

Pour résoudre ce problème rapidement, accédez à node_modules / react-native-safe-area-view => index.js

à la ligne 192, changement

this.view.getNode (). measureInWindow ((winX, winY, winWidth, winHeight)

à

this.view.measureInWindow ((winX, winY, winWidth, winHeight)


1

Comme on le voit dans le blog annonçant la sortie de RN62, il getNode()est désormais obsolète. Vous pouvez simplement utiliser refsans appeler getNode(). Voir cet engagement .


1
Le fait est que je n'utilise rien avec getNode, est-il possible qu'un package que j'apporte l'utilise? Je ne sais pas comment je peux voir quel paquet l'utilise? Existe-t-il un moyen facile de le savoir?
hellomello

Mise à jour - Je pense que cela pourrait provenir de SafeAreaView de React-Navigation
Hellomello

1
oui, l'avertissement peut provenir de certaines de vos dépendances, comme vous le mentionnez
Ovidiu Latcu

0

getNode() est désormais obsolète à la sortie de RN62, vous pouvez simplement rétrograder RN à 0.61.5 et vous n'aurez plus ces avertissements.


0

le problème se produit lorsque vous utilisez createAnimatedComponent pour les composants alors qu'il existe déjà dans la bibliothèque animée, par exemple si nous l'utilisons pour FlatList, cet avertissement s'affichera pour le corriger, appelez directement componenty directement

pour plus de détails, entrez la description du lien ici


0

changement

return this._carouselRef && this._carouselRef.getNode && this._carouselRef.getNode();

à

return this._carouselRef;

* La suppression de getNode () le corrigera.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.