J'essaie d'afficher des données de l'état, mais lorsque j'essaie de cartographier des données, il y a une erreur disant
ceci.state.xxx.map n'est pas une fonction p> blockQquote>
xxx pré>
p> p>
3 Réponses :
réponse.data.data code> est un objet et mappe code> n'est pas un Object fonction. this.setstate ({gifs: réponse.data.data}) code> remplace gifs code> avec l'objet entrant au lieu de l'ajouter au tableau. Vous pouvez ajouter réponse.data.data code> dans l'état comme: p>
Comment je peux faire ça? Je suis complètement débutant à ce genre de choses
édité ma réponse pour vous montrer où le changement devrait être fait
Le ou si vous souhaitez ajouter l'objet à réponse.data, données code> à partir de https://api.giphy.com/v1/gifs/random?api_key=nnwaquw24k8gldmrxgtmawppqotkxxglq&tag=&ratrating=g code> est un objet . Vous ne pouvez pas mapper un objet. this.state.gifs code>, vous devez essayer ce code ci-dessous: P> this.setState(prevState => ({
gifs: [...prevState.gifs, response.data.data]
}));
Merci ça marche, mais comment puis-je afficher toutes les données d'un objet? Il est possible de convertir un objet en tableau? donc je peux mapper
Voici une démonstration de travail:
L'API répondra à une image GIF unique et c'est un objet,
Dans votre état GIFS est une matrice, vous devez donc appuyer sur un nouvel objet dans une matrice GIFS ou vous pouvez utiliser l'opérateur de diffusion '...' p> [... this.state.gifs, newgifObject] code> à ajouter dans le tableau GIF. p> <script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.8.4/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.8.4/umd/react-dom.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/axios/0.19.0/axios.min.js"></script>
<div id="react"></div>
Imprimer
réponse.data.data code> et assurez-vous qu'il s'agit d'une matrice.L'API vient de retourner un objet et non un tableau. Changez le point d'extrémité API qui vous donne un éventail de gifs.