Ditingkatkan ke React Native 0.62.0 Mendapatkan Tanda Peringatan - "Memanggil` getNode () `pada referensi komponen Animasi tidak lagi diperlukan


9

Saya hanya memutakhirkan aplikasi asli reaksi saya ke 0.62.0, dan sekarang aplikasi saya terus mendapatkan tanda peringatan ini

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.

Saya tidak yakin mengapa masalah ini muncul? Bisakah seseorang tolong jelaskan?

Saya juga melihat Stack

ref.getNode |
createAnimatedComponent.js:129:20

SafeView#_updateMeasurements | index.js:192:14

SafeView#componentDidUpdate | index.js:154:9

Memperbarui

Saya percaya ini mungkin berasal dari SafeAreaView dari reaksi-navigasi

Jawaban:


4

Saya juga datang ke peringatan ini setelah memutakhirkan ro RN 0.62.1, dan saya tidak menggunakan getNode()sama sekali, ternyata itu berasal dari depedensi yang saya gunakan, dipanggil react-native-snap-carouselkarena mereka membangunnya dengan FlatList dan mungkin menggunakan getNode()juga.

Dan sekarang ada masalah terbuka tentang ini di repo GitHub mereka yang bisa kita ikuti, inilah tautan ke masalahnya

Memperbarui

ini juga berasal dari paket react-native-safe-area-view, mungkin aplikasi Anda menggunakan paket ini dan sekarang mereka telah merilis versi baru untuk memperbaiki getNode()penghinaan, lihat PR ini

jadi alih-alih memperbaiki sendiri file secara langsung, Anda hanya perlu memperbarui paket, cukup jalankan: npm i react-native-safe-area-view

Semoga itu bisa membantu :)


2

Untuk memperbaiki cepat ini pergi ke node_modules / react-native-safe-area-view => index.js

pada baris 192 berubah

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

untuk

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


1

Seperti yang terlihat di posting blog mengumumkan rilis RN62, getNode()sekarang sudah usang. Anda bisa menggunakannya reftanpa menelepon getNode(). Lihat komit ini .


1
Masalahnya, saya tidak menggunakan apa pun dengan getNode, apakah mungkin paket yang saya bawa menggunakannya? Saya tidak yakin bagaimana saya bisa melihat paket mana yang menggunakannya? Apakah ada cara mudah untuk mengetahuinya?
hellomello

Perbarui - saya pikir itu mungkin berasal dari SafeAreaView dari reaksi-navigasi
hellomello

1
ya, peringatan itu bisa datang dari beberapa dependensi Anda, seperti yang Anda sebutkan
Ovidiu Latcu

0

getNode() sudah tidak digunakan lagi saat merilis RN62, Anda cukup menurunkan versi RN ke 0,61.5 dan Anda tidak akan mendapatkan peringatan itu lagi.


0

masalah akan terjadi ketika Anda menggunakan createAnimatedComponent untuk komponen sementara itu sudah ada di pustaka animasi misalnya jika kita menggunakannya untuk FlatList, peringatan ini akan ditampilkan untuk memperbaikinya hanya memanggil komponen secara langsung

untuk lebih detail masukkan uraian tautan di sini


0

perubahan

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

untuk

return this._carouselRef;

* Menghapus getNode () akan memperbaikinya.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.