Auf React Native 0.62.0 aktualisiert Warnzeichen abrufen - "Das Aufrufen von getNode () in der Referenz der animierten Komponente ist nicht mehr erforderlich


9

Ich aktualisiere gerade meine reaktionsfähige native App auf 0.62.0, und jetzt erhält meine App weiterhin dieses Warnzeichen

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.

Ich bin nicht sicher, warum dieses Problem auftritt. Kann mir bitte jemand erklären?

Ich sehe auch Stack

ref.getNode |
createAnimatedComponent.js:129:20

SafeView#_updateMeasurements | index.js:192:14

SafeView#componentDidUpdate | index.js:154:9

Aktualisieren

Ich glaube, dies könnte von SafeAreaView aus der Reaktionsnavigation stammen

Antworten:


4

Ich bin auch auf diese Warnung gekommen, nachdem ich ro RN 0.62.1 aktualisiert habe, und ich habe sie überhaupt nicht verwendet. Es getNode()stellte sich heraus, dass sie von einer Abhängigkeit stammt, die ich verwende, react-native-snap-carouselweil sie mit FlatList erstellt wurde und möglicherweise getNode()auch die verwendet.

Und jetzt gibt es ein offenes Problem dazu in ihrem GitHub-Repo, dem wir folgen können. Hier ist der Link zum Problem

Aktualisieren

Dies kam auch aus dem Paket react-native-safe-area-view, möglicherweise verwendet Ihre App dieses Paket und jetzt haben sie eine neue Version veröffentlicht, um die getNode()Ablehnung zu beheben , siehe diese PR

Anstatt die Datei direkt selbst zu reparieren, müssen Sie nur das Paket aktualisieren. Führen Sie einfach Folgendes aus: npm i react-native-safe-area-view

Hoffe das ist Hilfe :)


2

Um dies schnell zu beheben, gehen Sie zu node_modules / react-native-safe-area-view => index.js

in Zeile 192 ändern

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

zu

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


1

Wie in dem Blog-Beitrag zu sehen ist , der die Veröffentlichung von RN62 ankündigt, getNode()ist er jetzt veraltet. Sie können einfach refohne Anruf verwenden getNode(). Siehe dieses Commit .


1
Die Sache ist, ich verwende nichts mit getNode. Ist es möglich, dass ein Paket, das ich einbringe, es verwendet? Ich bin nicht sicher, wie ich sehen kann, welches Paket es verwendet? Gibt es eine einfache Möglichkeit, dies herauszufinden?
Hellomello

Update - Ich denke, es könnte von SafeAreaView von React-Navigation kommen
hellomello

1
Ja, die Warnung kann von einigen Ihrer Abhängigkeiten stammen, wie Sie bereits erwähnt haben
Ovidiu Latcu

0

getNode() ist jetzt mit der Veröffentlichung von RN62 veraltet. Sie können RN einfach auf 0,61,5 herabstufen und erhalten diese Warnungen nicht mehr.


0

Das Problem tritt auf, wenn Sie createAnimatedComponent für Komponenten verwenden, während es bereits in der animierten Bibliothek vorhanden ist. Wenn wir es beispielsweise für FlatList verwenden, wird diese Warnung angezeigt, um das Problem zu beheben. Rufen Sie einfach Komponenten direkt auf

Für weitere Informationen geben Sie hier die Linkbeschreibung ein


0

Veränderung

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

zu

return this._carouselRef;

* Durch Entfernen von getNode () wird das Problem behoben.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.