Được nâng cấp lên React Native 0.62.0 Dấu hiệu cảnh báo - "Gọi` getNode () `trên ref của thành phần Animated không còn cần thiết


9

Tôi vừa nâng cấp ứng dụng gốc phản ứng của mình lên 0.62.0 và bây giờ ứng dụng của tôi tiếp tục nhận được dấu hiệu cảnh báo này

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.

Tôi không chắc tại sao vấn đề này lại xuất hiện? Ai đó có thể vui lòng giải thích?

Tôi cũng thấy Stack

ref.getNode |
createAnimatedComponent.js:129:20

SafeView#_updateMeasurements | index.js:192:14

SafeView#componentDidUpdate | index.js:154:9

Cập nhật

Tôi tin rằng điều này có thể đến từ SafeAreaView từ điều hướng phản ứng

Câu trả lời:


4

Tôi cũng đã đưa ra cảnh báo này sau khi nâng cấp ro RN 0.62.1 và tôi hoàn toàn không sử dụng getNode(), hóa ra nó đến từ một bộ phận mà tôi sử dụng, được gọi là react-native-snap-carouselvì họ xây dựng nó với FlatList và cũng có thể sử dụng getNode().

Và bây giờ có một vấn đề mở về vấn đề này trong repo GitHub của họ mà chúng ta có thể theo dõi, đây là liên kết đến vấn đề

Cập nhật

Điều này cũng đến từ gói react-native-safe-area-view, có thể ứng dụng của bạn đang sử dụng gói này và bây giờ họ đã phát hành phiên bản mới để khắc phục sự getNode()phản đối, hãy xem PR này

Vì vậy, thay vì tự sửa tệp trực tiếp, bạn chỉ cần cập nhật gói, chỉ cần chạy: npm i react-native-safe-area-view

Hy vọng đó là sự giúp đỡ :)


2

Để khắc phục nhanh vấn đề này, hãy truy cập node_modules / Reac -igen-safe-area-view => index.js

ở dòng 192 thay đổi

this .view.getNode (). đoInWindow ((winX, winY, winWidth, winHeight)

đến

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


1

Như đã thấy trong bài đăng trên blog thông báo phát hành RN62, getNode()hiện không được chấp nhận. Bạn chỉ có thể sử dụng refmà không cần gọi getNode(). Xem cam kết này .


1
Vấn đề là, tôi không sử dụng bất cứ thứ gì với getNode, có thể là gói mà tôi đang sử dụng không? Tôi không chắc làm thế nào tôi có thể thấy gói nào sử dụng nó? Có một cách dễ dàng để tìm hiểu?
hellomello

Cập nhật - tôi nghĩ rằng nó có thể đến từ SafeAreaView từ phản ứng điều hướng
hellomello

1
vâng, cảnh báo có thể đến từ một số phụ thuộc của bạn, như bạn đã đề cập
Ovidiu Latcu

0

getNode() hiện không được chấp nhận khi phát hành RN62, bạn chỉ có thể hạ RN xuống 0,61,5 và bạn sẽ không nhận được những cảnh báo đó nữa.


0

vấn đề sẽ xảy ra khi bạn sử dụng createAnimatedComponent cho các thành phần trong khi nó đã tồn tại trong thư viện hoạt hình, ví dụ nếu chúng ta sử dụng nó cho FlatList, cảnh báo này sẽ được hiển thị để khắc phục, chỉ cần gọi trực tiếp thành phần

để biết thêm chi tiết nhập mô tả liên kết ở đây


0

thay đổi

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

đến

return this._carouselRef;

* Xóa getNode () sẽ sửa nó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.