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

hellomello
la source

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 :)

Alvin Novian
la source
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)

Wenushka Mallikarachchi
la source
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 .

Ovidiu Latcu
la source
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.

Addy Abdelghani
la source
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

binar ahmed
la source
0

changement

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

à

return this._carouselRef;

* La suppression de getNode () le corrigera.

Dilina Dehigama
la source