Native 0.62.0 रिएक्ट करने के लिए अपग्रेडेड चेतावनी साइन - "एनिमेटेड घटक के रेफ पर` getNode () कॉल करना अब आवश्यक नहीं है


10

मैं अभी अपनी प्रतिक्रिया देशी ऐप को 0.62.0 पर अपग्रेड करता हूं, और अब मेरा ऐप इस चेतावनी संकेत को प्राप्त करता रहता है

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.

मुझे यकीन नहीं है कि यह मुद्दा क्यों दिख रहा है? क्या कोई समझा सकता है?

मैं भी स्टैक देखता हूं

ref.getNode |
createAnimatedComponent.js:129:20

SafeView#_updateMeasurements | index.js:192:14

SafeView#componentDidUpdate | index.js:154:9

अपडेट करें

मेरा मानना ​​है कि यह प्रतिक्रिया-नेविगेशन से SafeAreaView से आ रहा है

जवाबों:


5

मैं अपग्रेडेड आर आरएन 0.62.1 के बाद इस चेतावनी पर भी आया था, और मैंने बिल्कुल भी उपयोग नहीं किया था getNode(), यह पता चलता है कि यह मेरे द्वारा उपयोग की जाने वाली react-native-snap-carouselअवसादों से आया था, क्योंकि वे इसे फ्लैटलिस्ट के साथ बनाते हैं और संभवतः इसका उपयोग getNode()भी करते हैं।

और अब उनके GitHub रेपो में इस बारे में एक खुला मुद्दा है जिसका हम अनुसरण कर सकते हैं, यहां मुद्दे की लिंक है

अपडेट करें

यह भी पैकेज से आया है react-native-safe-area-view, संभवतः आपका ऐप इस पैकेज का उपयोग कर रहा है और अब उन्होंने getNode()डिप्रेशन को ठीक करने के लिए नया संस्करण जारी किया है , इस पीआर को देखें

इसलिए सीधे फ़ाइल को स्वयं ठीक करने के बजाय, आपको बस पैकेज को अपडेट करना होगा, बस चलाना होगा: npm i react-native-safe-area-view

उम्मीद है कि मदद :)


2

इसे ठीक करने के लिए, नोड_मॉड्यूल्स / प्रतिक्रिया-मूल-सुरक्षित-क्षेत्र-दृश्य => index.js पर जाएं

192 लाइन में परिवर्तन

this.view.getNode ()। उपाय .Window ((winX, winY, winWidth, wingetee)

सेवा

यह .view.measureInWindow ((winX, winY, winWidth, winHeight)


अब आप केवल अपने नोड मॉड्यूल को अपडेट कर सकते हैंnpm i react-native-safe-area-view
picacode

1

जैसा कि RN62 की रिलीज की घोषणा करने वाले ब्लॉग पोस्ट में देखा गया है , getNode()अब इसे हटा दिया गया है। आप refबिना कॉल किए सिर्फ उपयोग कर सकते हैं getNode()। देखिए यह कमिट


1
बात यह है, मैं getNode के साथ कुछ भी उपयोग नहीं कर रहा हूं, क्या यह संभव है कि एक पैकेज जो मैं ला रहा हूं वह इसका उपयोग कर रहा है? मुझे यकीन नहीं है कि मैं कैसे देख सकता हूं कि कौन सा पैकेज इसका उपयोग करता है? क्या पता लगाने का एक आसान तरीका है?
हेलोमेलो

अद्यतन - मुझे लगता है कि यह प्रतिक्रिया-नेविगेशन से SafeAreaView से आ रहा है
हेलोमेलो

1
हाँ, चेतावनी आपके कुछ आश्रितों से आ सकती है, जैसे कि आप उल्लेख करते हैं
Ovidiu Latcu

1

यदि आप उपयोग कर रहे हैं तो आप react-native-snap-carouselइसे स्थानीय स्तर पर अपने नोड मॉड्यूल को संशोधित करके ठीक कर सकते हैं।

सबसे पहले जाओ

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

परिवर्तन

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

में

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

और अंत में, अपने _getWrappedRefफ़ंक्शन को इसमें बदलें

_getWrappedRef () {
 return this._carouselRef
}

यह चेतावनी तब तक रोकेगी जब तक कि हमारे पास उस पैकेज का अपडेट न हो।


मैं अभी react-native-snap-carouselनवीनतम संस्करण में अपडेट हुआ हूं और चेतावनी दी गई थी।
एंड्री पटसेइको

0

समस्या तब होगी जब आप कंपोनेंट्स के लिए createAnimatedComponent का उपयोग करते हैं, जबकि इसका पहले से ही एनिमेटेड लाइब्रेरी में उदाहरण के लिए मौजूद है यदि हम इसका उपयोग फ़्लैटलिस्ट के लिए करते हैं, तो यह चेतावनी ठीक करने के लिए दिखाई देगी, इसे सीधे सीधे फोन करें

अधिक विवरण के लिए लिंक विवरण यहां दर्ज करें



-1

getNode() अब RN62 की रिलीज़ पर पदावनत कर दिया गया है, आप बस RN को 0.61.5 पर डाउनग्रेड कर सकते हैं और आपको वे चेतावनियाँ नहीं मिलेंगी।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.