React Native 0.62.0にアップグレードすると警告サインが表示される-アニメーションコンポーネントの参照で「getNode()」を呼び出す必要がなくなりました


9

反応ネイティブアプリを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から来ている可能性があると思います

回答:


4

ro RN 0.62.1のアップグレード後にもこの警告が表示されましたが、まったく使用getNode()していません。FlatList を使用しreact-native-snap-carouselてビルドし、おそらくを使用しgetNode()ているために使用した依存関係から発生したことがわかりました。

そして今、私たちがフォローできるGitHubリポジトリにこれに関する未解決の問題があります、これは問題リンクです

更新

これもパッケージからのものreact-native-safe-area-viewであり、アプリがこのパッケージを使用している可能性があります。現在、getNode()非推奨を修正するための新しいバージョンがリリースされています。このPRを参照してください

自分でファイルを直接修正するのではなく、パッケージを更新するだけで、次のように実行できます。 npm i react-native-safe-area-view

それが役に立てば幸い:)


2

これをすばやく修正するには、node_modules / react-native-safe-area-view => index.jsに移動します

192行目で変更

this.view.getNode()。measureInWindow((winX、winY、winWidth、winHeight)

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


1

RN62のリリースを発表しているブログ投稿にあるように、getNode()は非推奨になりました。refを呼び出さずにそのまま使用できgetNode()ます。このコミットをご覧ください。


1
事は、私はgetNodeで何も使用していないということです。持ち込んでいるパッケージがそれを使用している可能性はありますか?どのパッケージがそれを使用しているかをどのように確認できるかわかりませんか?見つける簡単な方法はありますか?
hellomello

更新-それは、react-navigationからのSafeAreaViewから来る可能性があると思います
hellomello

1
ええ、警告はあなたが言及したようにあなたの依存関係のいくつかから来ることができます
Ovidiu Latcu

0

getNode() はRN62のリリースで非推奨になりました。RNを0.61.5にダウングレードするだけで、これらの警告は表示されなくなります。



0

変化する

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

return this._carouselRef;

* getNode()を削除すると修正されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.