0
votes

Magasinez Axios (JSON) Réponse dans le tableau

J'ai un tableau qui est utilisé par un autre fichier pour cartographier le contenu. J'ai à l'origine des valeurs codées difficiles dans ce tableau, mais je voudrais maintenant intégrer un axios Obtenir un appel pour récupérer des données, puis stocker les informations de la réponse dans la matrice. Je peux obtenir la réponse JSON avec succès avec les données correctes, mais je suis bloqué sur l'obtention des données de réponse JSON dans le tableau. Toute aide serait grandement appréciée

let theArray = [
{
id: '',
name: '',
},]

useEffect(() => {
        axios
            .get(`/api/data`)
            .then(res => {
                //? need to store res.data.id to theArray.id, and res.data.name to theArray.name
            })
    }, [])


1 commentaires

Je pense que ces sylènes ont proposé une bonne solution, je viens de poster une nouvelle structure ci-dessous. mais est juste une question de structure différente @reef


4 Réponses :


0
votes

Si ce n'est que la modification du premier élément:

let theArray = [{ id: '',  name: '',},]

useEffect(() => {
        axios
            .get(`/api/data`)
            .then(res => {
                theArray[0].id = res.data.id
                theArray[0].name = res.data.name
            })
    }, [])


2 commentaires

Bonjour, je suis tout à fait nouveau pour réagir et me demander si vous vouliez imprimer ces données sous Render (), pouvez-vous faire "Thearray [0] .Id"? Sinon, comment aurais-je accès à ces informations?


Vous pouvez faire rendu () {return

{thearray [0] nom} } ou rendu () {retour Thearray [0] .map (D => {d.name} )}



4
votes

Vous pouvez simplement appuyer sur la réponse à la matrice, mais vous devez commencer par un tableau vide, sinon, le premier élément que vous avez codé ne contiendra aucune donnée.

let theArray = []

useEffect(() => {
        axios
            .get(`/api/data`)
            .then(res => {
                const newItem = {
                  id: res.data.id,
                  name: res.data.name,
                };
                theArray.push(newItem);
             })
    }, [])


3 commentaires

Je pense que c'est une bonne solution, je viens de poster une nouvelle structure ci-dessous. mais est juste une question de structure différente


Bonjour, je suis tout à fait nouveau pour réagir et me demander si vous vouliez imprimer ces données sous Render (), pouvez-vous faire "Thearray [0] .Id"? En outre, utilisez-vous simplement simplement une fonction supplémentaire?


Est-il possible que j'utilise cette méthode dans App.get (....) dans ExpressJs aussi? Y a-t-il un conflit avec res.Render ou non?



1
votes

Si vos données sont au format JSON, vous devriez attendre que les informations soient analysées, quelque chose comme ceci:

theArray.push({
    id: result.id,
    name: result.name,
})


1 commentaires

Bonjour, je suis tout à fait nouveau pour réagir et me demander si vous vouliez imprimer ces données sous Render (), pouvez-vous faire "Thearray [0] .Id"? Sinon, comment aurais-je accès à ces informations?



2
votes

Voici une autre solution, je pense que @sylens solution est une bonne chose, il s'agit simplement d'une matière structurant votre code comme vous le souhaitez

let theArray = []

useEffect(() => {
        axios
            .get(`/api/data`)
            .then(res => {
                // object destructuring
                const { id, name } = res.data;
                theArray.push({ id, name })
            })
    }, [])


1 commentaires

Bonjour, je suis tout à fait nouveau pour réagir et me demander si vous vouliez imprimer ces données sous Render (), pouvez-vous faire "Thearray [0] .Id"? Sinon, comment aurais-je accès à ces informations?