J'utilise des opérations asynchrones pour récupérer des données de ma propre API, mais parfois réagir n'attends pas l'opération complète et que mon objet d'état renvoie NULL et provoque une erreur NULL.
Constructeur: P>
componentWillMount(){ this.fillCase(); }
3 Réponses :
Vous devez vérifier si les skins sont une matrice vide
Il semble que les données Essayez de l'imprimer pendant que vous recevez les données, essayez également de filtrer: P> code> que vous avez récupérées à partir du serveur contiennent des valeurs null.
fillCase = async () => {
const link = encodeURI("https://localhost:44390/api/getskins");
const response = await fetch(link);
const data = await response.json();
console.log(data);
this.setState({ skins: data.filter(d => d) });
};
Il y a peu de problèmes ici: p>
Tout d'abord, vous n'utilisez pas CWM pour l'une de vos opérations ASYNC. Utilisez le CDM à la place. p> li>
Faites de votre MDP ASYNC plutôt que de la méthode FILLCASE (). p> li> ol>
Une autre approche serait d'utiliser des crochets ici. Mettez vos données récupérer la logique dans un crochet UseEffect. C'est juste un moyen plus propre et plus flexible de faire la même chose si vous connaissez des crochets. p>