0
votes

React.js Async Operation SetState retourne null

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();
}


0 commentaires

3 Réponses :


0
votes

Vous devez vérifier si les skins sont une matrice vide xxx


0 commentaires

1
votes

Il semble que les données code> que vous avez récupérées à partir du serveur contiennent des valeurs null.

Essayez de l'imprimer pendant que vous recevez les données, essayez également de filtrer: P>

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) });
};


0 commentaires

0
votes

Il y a peu de problèmes ici:

  1. Tout d'abord, vous n'utilisez pas CWM pour l'une de vos opérations ASYNC. Utilisez le CDM à la place.

  2. Faites de votre MDP ASYNC plutôt que de la méthode FILLCASE ().

    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.


0 commentaires