web-dev-qa-db-fra.com

composantWillMount est obsolète et sera supprimé de la prochaine version majeure 0.54.0 dans React Native

J'utilise la dernière version native de 0.54.0 de Rea et chaque fois que j'exécute les applications sur iOS, un avertissement est émis concernant la dépréciation des méthodes du cycle de vie. et aussi s'il vous plaît mettre à jour les composants.

Attention :  

composantWillMount est obsolète et sera supprimé de la prochaine version majeure. Utilisez composantDidMount à la place. Une solution temporaire consiste à renommer UNSAFE_componentWillMount . Veuillez mettre à jour les composants suivants: Container, Text, TouchableOpacity, Transitioner, View

J'ai aussi changé en fonction de la mise en garde d'ajouter le préfixe UNSAFE_ à chaque méthode.

UNSAFE_componentDidMount() {
}
UNSAFE_componentWillMount() {
}
UNSAFE_componentWillUpdate(nextProps, nextState) {
}
UNSAFE_componentWillReceiveProps(nextProps) {
}

Bien que l'avertissement continue. Aidez-moi, s'il vous plaît.

Actuellement, je cache le YellowBox dans mes applications.

import { YellowBox } from 'react-native';

render() {

  YellowBox.ignoreWarnings([
    'Warning: componentWillMount is deprecated',
    'Warning: componentWillReceiveProps is deprecated',
  ]);
}
12
Kirit Modi

Vous devez déplacer tout le code de composantWillMount vers le constructeur ou composantDidMount.

composantWillMount () est appelé juste avant le montage. Il est appelé avant render (). Par conséquent, l'appel de setState () de manière synchrone dans cette méthode ne déclenchera pas de rendu supplémentaire. En règle générale, nous vous recommandons d'utiliser le constructeur () à la place de . Évitez d’introduire des effets secondaires ou des abonnements dans cette méthode. Pour ces cas d'utilisation, utilisez plutôt composantDidMount () . Il s'agit du seul hook de cycle de vie appelé sur le rendu du serveur.

composantDidMount () est appelé immédiatement après le montage d'un composant. L'initialisation nécessitant des nœuds DOM doit être effectuée ici. Si vous devez charger des données depuis un point de terminaison distant, c’est un bon emplacement pour instancier la requête réseau . Cette méthode est un bon endroit pour configurer des abonnements. Si vous faites cela, n’oubliez pas de vous désabonner dans le composantWillUnmount () . L'appel de setState () dans cette méthode déclenchera un rendu supplémentaire, mais cela se produira avant que le navigateur ne mette à jour l'écran. Cela garantit que même si la render () sera appelée deux fois dans ce cas, l’utilisateur ne verra pas l’état intermédiaire. Utilisez ce modèle avec prudence, car il provoque souvent des problèmes de performances. Cela peut toutefois être nécessaire dans des cas tels que les modaux et les info-bulles lorsque vous devez mesurer un nœud DOM avant de rendre quelque chose qui dépend de sa taille ou de sa position.

D'après les documents officiels

13
Vladimir K.

componentDidMount n'est pas obsolète et son utilisation est toujours sûre, il n'est donc pas nécessaire d'ajouter UNSAFE_ à cette méthode. Les méthodes composantWill Quelque chose sont celles qui semblent en voie de disparition. Au lieu de componentWillMount, utilisez un constructeur pour les éléments qui ne produisent pas d’effets secondaires, et componentDidMount pour les éléments qui les produisent.

0
Elliott Jones