নেটিভ 0.62.0 প্রতিক্রিয়া হিসাবে আপগ্রেড করা সতর্কতা সাইন পাওয়া - অ্যানিমেটেড উপাদানটির রেফারে "কলিং` getNode () longer আর প্রয়োজন নেই


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

হালনাগাদ

আমি বিশ্বাস করি এটি নিরাপদআরভিউ থেকে প্রতিক্রিয়া-নেভিগেশন থেকে আসছে

উত্তর:


5

আমি আরএন 0.62.1 আপগ্রেড করার পরেও এই সতর্কতাটিতে এসেছি এবং আমি একেবারেই ব্যবহার করিনি getNode(), এটি আমার ব্যবহার করা অবক্ষয় থেকে এসেছে, বলা হয়েছে react-native-snap-carouselযে তারা ফ্ল্যাটলিস্ট দিয়ে তৈরি করেছেন এবং সম্ভবত এটি ব্যবহার করে getNode()

এবং এখন তাদের গিটহাব রেপোতে এটি সম্পর্কে একটি মুক্ত বিষয় রয়েছে যা আমরা অনুসরণ করতে পারি, এখানে ইস্যুটির লিঙ্কটি দেওয়া আছে

হালনাগাদ

এটি প্যাকেজ থেকেও এসেছে react-native-safe-area-view, সম্ভবত আপনার অ্যাপ্লিকেশনটি এই প্যাকেজটি ব্যবহার করছে এবং getNode()অবচয় স্থির করার জন্য তারা এখন নতুন সংস্করণ প্রকাশ করেছে , এই পিআরটি দেখুন

সুতরাং সরাসরি ফাইলটি নিজেই স্থির করার পরিবর্তে আপনাকে কেবল প্যাকেজটি আপডেট করতে হবে, খালি চালান: npm i react-native-safe-area-view

আশা করি যে সাহায্য :)


2

এটির দ্রুত সমাধানের জন্য নোড_মডিউল / প্রতিক্রিয়া নেটিভ-সেফ-এরিয়া ভিউ => ইনডেক্স.জেএস এ যান

লাইন 192 পরিবর্তন

this.view.getNode ()। পরিমাপ inWindow ((winX, winY, winWidth, winHight)

প্রতি

this.view.measureInWindow ((উইনএক্স, উইনওয়াই, উইনউইথ, উইনহাইট)


এটির স্থিতিতে আপনি এখন কেবল আপনার নোড মডিউলগুলি আপডেট করতে পারেনnpm i react-native-safe-area-view
পিকাকোড

1

ব্লগ পোস্টে দেখা গেছে যে আরএন 62 প্রকাশের ঘোষণা দিয়ে getNode()এখন অবচয় করা হয়েছে। আপনি refকল না করেই ব্যবহার করতে পারবেন getNode()। এই প্রতিশ্রুতি দেখুন ।


1
বিষয়টি হ'ল, আমি getNode এর সাহায্যে কিছু ব্যবহার করছি না, এটি কি সম্ভব যে আমি যে প্যাকেজ নিয়ে এসেছি তা ব্যবহার করছে? আমি নিশ্চিত না যে আমি কীভাবে প্যাকেজটি এটি ব্যবহার করে তা দেখতে পাচ্ছি? এটির কোন সহজ উপায় আছে?
হেলোমেলো

আপডেট - আমার ধারণা এটি নিরাপদআরভিউ থেকে প্রতিক্রিয়া-নেভিগেশন থেকে আসতে পারে
Hellomello

1
হ্যাঁ, সতর্কতাটি আপনার কয়েকটি নির্ভরতা থেকে আসতে পারে, যেমন আপনি উল্লেখ করেছেন
ওভিদিউ লাট্টু

0

getNode() আরএন 62 প্রকাশের ক্ষেত্রে এখন অবহিত করা হয়েছে, আপনি কেবল আরএনকে 0.61.5 এ ডাউনগ্রেড করতে পারেন এবং আপনি এই সতর্কতাগুলি আর পাবেন না।


0

সমস্যাটি ঘটবে যখন আপনি অ্যানিমেটেড লাইব্রেরিতে উপাদানগুলির জন্য ইতিমধ্যে অ্যানিমেটেড কম্পোনেন্ট তৈরি করার সময় এটি ব্যবহার করবেন উদাহরণস্বরূপ আমরা যদি এটি ফ্ল্যাটলিস্টে ব্যবহার করি তবে এই সতর্কতা ঠিক করার জন্য এটি প্রদর্শিত হবে কেবল সরাসরি সংযোগ কল করুন

আরও বিশদের জন্য লিঙ্কের বর্ণনা এখানে লিখুন



0

আপনি যদি ব্যবহার করছেন তবে 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
}

আমাদের সেই প্যাকেজটিতে আপডেট না হওয়া পর্যন্ত এটি সতর্কতা বন্ধ করে দেবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.