Ich implementiere 2 Bildschirme mit der reakt-Navigation. Ich habe jedoch die folgende Warnung erhalten, als ich zur zweiten Seite navigierte:
Warnung: isMounted (...) ist in einfachen Javascript-Klassen veraltet. Bereinigen Sie stattdessen Abonnements und ausstehende Anforderungen in componentWillUnmount, um Speicherverluste zu vermeiden.
Versionen:
Login.js
import React, { Component } from 'react';
import { Text, View, Image, TextInput, TouchableOpacity } from 'react-native';
import styles from "./styles";
export default class Login extends Component {
constructor(props) {
super(props);
}
render() {
const { navigate } = this.props.navigation;
return (
<View style={styles.container}>
<View style={styles.formContainer}>
<TouchableOpacity style={styles.button} onPress={()=> navigate('Home')} >
<Text style={styles.buttonText}>LOGIN</Text>
</TouchableOpacity>
</View>
</View>
)
}
Home.js
import React, { Component } from 'react';
import { Text, View } from 'react-native';
import styles from "./styles";
export default class Home extends Component {
constructor(props) {
super(props);
}
render() {
const { navigate } = this.props.navigation;
return(
<View style={styles.container}>
<Text>Home Screen</Text>
</View>
)
}
}
Was fehlt mir hier?
Dies ist ein Problem mit der neuesten React Navigation und React Native. Zum Schweigen hinzufügen:
import { YellowBox } from 'react-native';
YellowBox.ignoreWarnings(['Warning: isMounted(...) is deprecated', 'Module RCTImageLoader']);
Ich gehe davon aus, dass es in den nächsten Wochen in React Navigation behoben wird.
Ist eigentlich ein reaktives Problem
Sie können abwarten und prüfen, wann ein Fix verfügbar ist: https://github.com/facebook/react-native/issues/18868
Oder in der Zwischenzeit können Sie die Warnung wie vorgeschlagen ausblenden.
Verwenden Sie diese Anweisung in index.js
:
import { YellowBox } from 'react-native';
YellowBox.ignoreWarnings(['Warning: isMounted(...) is deprecated', 'Module RCTImageLoader']);
Dies ist nicht von react-navigation
, da ich in node_modules nachgesehen habe und react-navigation
isMounted
nicht verwendet. Es kommt von irgendwo innerhalb von React-Native, Ich habe auch denselben von @Romsun verwendeten Hack gemacht
import { YellowBox } from 'react-native';
YellowBox.ignoreWarnings(['Warning: isMounted(...) is deprecated', 'Module RCTImageLoader']);
reagieren-Navigationsproblem ist jetzt geschlossen, Sie können hier sehen.
Sie behaupten, es sei ein Problem irgendwo in reag-native
Das habe ich vorerst für dieses Problem getan:
schritt 1: Tippen Sie auf die Warnung
schritt 2: Klicken Sie im gelben Fenster oben rechts auf die Option Stapelverfolgung
schritt 3: Suchen Sie den Pfad, an dem die Warnung aufgetreten ist, z. B .: C:\Benutzer\Benutzername\Projektname\Knotenmodule\Reakt\cjs\Reakt.development.js
schritt 4: Öffnen Sie den Pfad im Editor
schritt 5: Finden Sie das Schlüsselwort isMounted unter den veralteten APIs und löschen Sie die veraltete Funktion und die dazugehörige Warnung.
schritt 6: Speichern und laden Sie Ihre App !!
Wenn Sie EXPO für die RN-Entwicklung verwenden, wurde dieses Problem in Version 27.0.2 behoben.
Siehe https://forums.expo.io/t/warnings-after-upgrade-to-expo-27/9579/12
Die obigen Antworten haben für mich nicht funktioniert, aber index.js
hat folgendes hinzugefügt:
console.ignoreYellowBox = ['Warning: isMounted(...) is deprecated'];
Oder führen Sie ein Upgrade auf expo 27.0.2
durch, wodurch das obige zu Expo.js
hinzugefügt wird. Weitere Informationen finden Sie hier: https://forums.expo.io/t/warnings-after-upgrade-to-expo-27/9579/10
Wie in den anderen Antworten bereits erwähnt wurde, handelt es sich um ein react-native
-Problem, das hoffentlich bald dort und dann in der folgenden Version von Expo behoben wird.
Die folgende Lösung funktioniert für mich:
import { YellowBox } from 'react-native';
YellowBox.ignoreWarnings(['Warning: isMounted(...) is deprecated', 'Module RCTImageLoader']);
Das Ignorieren dieser Nachricht ist für einen guten Entwickler der falsche Weg. Wenn wir dieses Problem beheben, wird der Speicherverlust verringert.
Wenn Sie einen Expo-Client verwenden, aktualisieren Sie Ihre Version auf [email protected], wodurch diese Warnung behoben wird. . .