Native React 0.62.0'a Yükseltildi Uyarı İşareti Alma - Animasyonlu bileşenin ref'sinde "getNode ()" çağrısı artık gerekli değil


10

Ben sadece yerel tepki benim app 0.62.0 yükseltmek, ve şimdi benim app bu uyarı işareti almaya devam

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.

Bu sorunun neden ortaya çıktığını bilmiyorum? Birisi açıklayabilir mi lütfen?

Ayrıca Stack'i de görüyorum

ref.getNode |
createAnimatedComponent.js:129:20

SafeView#_updateMeasurements | index.js:192:14

SafeView#componentDidUpdate | index.js:154:9

Güncelleme

Bunun tepki gezintisinden SafeAreaView'dan gelebileceğini düşünüyorum

Yanıtlar:


5

Bu uyarıyı RN 0.62.1'i yükselttikten sonra da geldim ve hiç kullanmadım getNode(), react-native-snap-carouselFlatList ile oluşturdukları ve muhtemelen de kullandıkları için kullandığım bir bağımlılıktan geldiğini ortaya koyuyor getNode().

Ve şimdi GitHub repolarında takip edebileceğimiz açık bir sorun var, işte sorunun bağlantısı

Güncelleme

bu da paketten geldi react-native-safe-area-view, muhtemelen uygulamanız bu paketi kullanıyor ve şimdi getNode()kullanımdan kaldırmayı düzeltmek için yeni bir sürüm yayınladılar , bu PR'ye bakın

bu nedenle dosyayı doğrudan kendiniz düzeltmek yerine, paketi güncellemeniz yeterlidir, şunları çalıştırın: npm i react-native-safe-area-view

Umarım bu yardımcı olur :)


2

Bunu hızlı bir şekilde düzeltmek için node_modules / tepki-native-safe-area-view => index.js adresine gidin.

192. satırda değişiklik

tedbir.Window ((winX, winY, winWidth, winHeight)

için

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


Bunun yerine artık düğüm modüllerinizi güncelleyebilirsiniznpm i react-native-safe-area-view
picacode

1

Blog yayınında görüldüğü gibi RN62'nin yayınlandığını duyurdu getNode(), artık kullanımdan kaldırıldı. Sadece refaramadan kullanabilirsiniz getNode(). Bu Bkz işlemek .


1
Mesele şu ki, getNode ile hiçbir şey kullanmıyorum, getirdiğim bir paketin onu kullanması mümkün mü? Hangi paketi kullandığını nasıl anlayabileceğimden emin değilim? Öğrenmenin kolay bir yolu var mı?
hellomello

Güncelleme - Sanırım tepki-navigasyondan SafeAreaView geliyor olabilir
hellomello

1
evet, uyarı sizin belirttiğiniz gibi bazı bağımlılıklarınızdan gelebilir
Ovidiu Latcu

1

Kullanıyorsanız react-native-snap-carousel, düğüm modülünüzü yerel olarak değiştirerek düzeltebilirsiniz.

ilk git

 ./node_modules/react-native-snap-carousel/src/Carousel.js

değişiklik

const AnimatedFlatList = FlatList ? Animated.createAnimatedComponent(FlatList) : null;
const AnimatedScrollView = Animated.Animated.createAnimatedComponent(ScrollView);

içine

const AnimatedFlatList = FlatList ? Animated.FlatList : null;
const AnimatedScrollView = Animated.ScrollView;

ve son olarak _getWrappedRefişlevinizi

_getWrappedRef () {
 return this._carouselRef
}

Bu, pakette bir güncelleme olana kadar uyarıyı durduracaktır.


Ben sadece react-native-snap-carouselson sürüme güncellendi ve uyarı gitti.
Andrey Patseiko

0

sorun animasyonlu kütüphanede zaten mevcutken bileşenler için createAnimatedComponent kullandığınızda ortaya çıkacaktır, örneğin FlatList için kullanırsak bu uyarı düzeltmek için gösterilecektir, sadece doğrudan bileşen çağırın

daha fazla ayrıntı için link açıklamasını buraya girin


0

değişiklik

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

için

return this._carouselRef;

* GetNode () öğesinin kaldırılması sorunu çözecektir.


-1

getNode() RN62 sürümünde artık kullanılmıyorsa, RN'yi 0.61.5 sürümüne düşürebilirsiniz ve artık bu uyarıları alamazsınız.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.