wake-up-neo.net

Warnung: isMounted (...) ist in einfachen Javascript-Klassen veraltet

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:

  • reagieren: 16.3.1
  • nativ reagieren: 0.55.2
  • reagnavigation: 1.5.11
  • util: 0.10.3

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.

55
James

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.

6
Erwan

Verwenden Sie diese Anweisung in index.js:

import { YellowBox } from 'react-native';
YellowBox.ignoreWarnings(['Warning: isMounted(...) is deprecated', 'Module RCTImageLoader']);
1
Diksha Nagpal

Dies ist nicht von react-navigation, da ich in node_modules nachgesehen habe und react-navigationisMounted 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']);
0
Sarmad Aijaz

reagieren-Navigationsproblem ist jetzt geschlossen, Sie können hier sehen. 

Sie behaupten, es sei ein Problem irgendwo in reag-native

0
Pavel Krčmář

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 !!

0
Swasam

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

0
Pavel Krčmář

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.

0
Briano

Die folgende Lösung funktioniert für mich:

import { YellowBox } from 'react-native';
YellowBox.ignoreWarnings(['Warning: isMounted(...) is deprecated', 'Module RCTImageLoader']);
0

Das Ignorieren dieser Nachricht ist für einen guten Entwickler der falsche Weg. Wenn wir dieses Problem beheben, wird der Speicherverlust verringert.

0
Gajarajan

Wenn Sie einen Expo-Client verwenden, aktualisieren Sie Ihre Version auf [email protected], wodurch diese Warnung behoben wird. . .

0
Manoj