Aggiornato a React Native 0.62.0 Ottenere segnale di avvertimento - "Chiamare` getNode () `sul riferimento del componente animato non è più necessario


9

Ho appena aggiornato la mia app nativa reattiva a 0.62.0 e ora la mia app continua a ricevere questo segnale di avvertimento

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.

Non sono sicuro del motivo per cui viene visualizzato questo problema? Qualcuno può spiegare per favore?

Vedo anche Stack

ref.getNode |
createAnimatedComponent.js:129:20

SafeView#_updateMeasurements | index.js:192:14

SafeView#componentDidUpdate | index.js:154:9

Aggiornare

Credo che questo potrebbe provenire da SafeAreaView da reagire alla navigazione

Risposte:


4

Ho anche ricevuto questo avviso dopo aver aggiornato ro RN 0.62.1 e non l'ho usato getNode()affatto, risulta che proveniva da dipendenze che uso, chiamate react-native-snap-carouselperché costruiscono con FlatList e possibilmente usando getNode()anche.

E ora c'è un problema aperto su questo nel loro repository GitHub che possiamo seguire, ecco il link al problema

Aggiornare

anche questo è venuto dal pacchetto react-native-safe-area-view, probabilmente la tua app sta usando questo pacchetto e ora hanno rilasciato una nuova versione per correggere la getNode()deprecazione, vedi questo PR

quindi, invece di riparare direttamente il file, devi solo aggiornare il pacchetto, semplicemente esegui: npm i react-native-safe-area-view

Spero che sia d'aiuto :)


2

Per risolvere rapidamente questo problema, vai a node_modules / reply-native-safe-area-view => index.js

alla riga 192 cambia

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

per

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


1

Come visto nel post sul blog che annuncia il rilascio di RN62, getNode()ora è deprecato. Puoi semplicemente usare refsenza chiamare getNode(). Vedi questo commit .


1
Il fatto è che non sto usando nulla con getNode, è possibile che un pacchetto che sto introducendo lo stia usando? Non sono sicuro di come posso vedere quale pacchetto lo utilizza? C'è un modo semplice per scoprirlo?
hellomello,

Aggiornamento - penso che potrebbe provenire da SafeAreaView da Reatt-Navigation
hellomello il

1
sì, l'avvertimento può venire da alcune delle tue dipendenze, come dici tu
Ovidiu Latcu,

0

getNode() è ora obsoleto al rilascio di RN62, è possibile eseguire il downgrade di RN a 0.61.5 e non si riceveranno più tali avvisi.


0

il problema si verificherà quando si utilizza createAnimatedComponent per i componenti mentre è già presente nella libreria animata, ad esempio se lo utilizziamo per FlatList questo avviso verrà visualizzato per la correzione, basta chiamare direttamente componenty

per maggiori dettagli inserisci la descrizione del link qui


0

modificare

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

per

return this._carouselRef;

* La rimozione di getNode () lo risolverà.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.