Обновлен до React Native 0.62.0 Получение предупреждающего знака - больше не нужно вызывать `getNode ()` для ссылки на анимированный компонент - PullRequest
9 голосов
/ 29 марта 2020

Я просто обновляю свое реагирующее нативное приложение до версии 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 из реагирования-навигации

Ответы [ 6 ]

4 голосов
/ 04 апреля 2020

Я также пришел к этому предупреждению после обновления ro RN 0.62.1, и я вообще не использовал getNode(), оказалось, что оно произошло из-за используемых мной зависимостей, называемых react-native-snap-carousel, потому что они строили его с помощью FlatList и, возможно, с использованием getNode().

И теперь есть открытая проблема об этом в их репозитории GitHub, за которой мы можем следить, вот ссылка на выпуск

Обновление

это также пришло из пакета react-native-safe-area-view, возможно, ваше приложение использует этот пакет, и теперь они выпустили новую версию, чтобы исправить getNode() устаревание, см. Этот PR

так что вместо того, чтобы исправлять файл самостоятельно, вам просто нужно обновить пакет, просто запустите: npm i react-native-safe-area-view

Надеюсь, это поможет:)

2 голосов
/ 11 апреля 2020

Чтобы быстро исправить это go в node_modules / реагировать-нативно-безопасный-область-представление => индекс. js

в строке 192 изменить

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

до

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

1 голос
/ 29 марта 2020

Как видно из сообщения в блоге , в котором объявляется о выпуске RN62, getNode() устарела. Вы можете просто использовать ref без вызова getNode(). Смотрите это коммит .

0 голосов
/ 09 апреля 2020

изменить

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

на

return this._carouselRef;

* Удаление getNode () исправит это.

0 голосов
/ 09 апреля 2020

проблема будет возникать, когда вы используете createAnimatedComponent для компонентов, в то время как он уже существует в анимированной библиотеке, например, если мы используем его для FlatList, это предупреждение будет отображаться для исправления, просто вызовите компоненты непосредственно

для получения более подробной информации введите описание ссылки здесь

0 голосов
/ 04 апреля 2020

getNode() устарела после выпуска RN62, вы можете просто понизить RN до 0.61.5, и вы больше не будете получать эти предупреждения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...