es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Creando un nuevo array de objetos a partir de una llamada de API en react js.

En realidad estoy obteniendo datos de la API de Google Calendar para días festivos públicos y quiero mostrarlos en el calendario. Para ello, primero obtengo los datos de la API de Google, y luego intento crear una nueva matriz de objetos que almacenará los datos que necesito del calendario de la API de Google. El problema es que soy capaz de crear una nueva matriz de objetos, pero no soy capaz de agregar nuevos objetos para todos los datos que estoy obteniendo de la API de Google Calendar. Intenté usar un bucle pero no funciona.

Mi código:

let google;

useEffect(() => {
axios.get(‘https://www.googleapis.com/calendar/v3/calendars/en.australian%23holiday%40group.v.calendar.google.com/events?key=personalkey’)
.then(res => {
const data = res.data.items;
console.log(“Datos del calendario de la API de Google”, data)

    for (let i = 0; i < data.length; i++) {

        data.map((item) => {
            google = {
                "id": item.id,
                "title": item.summary,
                "location": "Australia",
                "start": new Date(moment(item.start.date)),
                "end": new Date(moment(item.end.date)),
                "description": item.description,
                "durationday": 'Todo el día',
                "sameId": null

            }
        })
    }

    console.log("Creando una matriz de objetos dentro de la promesa de Google", google)
})
.catch(err => { console.log('Error en la API de Google Calendar', err) })

})

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Solución

    Puedes usar el método Array.prototype.push() para añadir nuevos objetos al array.

    let google = [];
    
    useEffect(() => {
        axios.get('https://www.googleapis.com/calendar/v3/calendars/en.australian%23holiday%40group.v.calendar.google.com/events?key=personalkey')
            .then(res => {
                const data = res.data.items;
                console.log("Datos del calendario de Google API", data)
    
    <pre><code>    for (let i = 0; i < data.length; i++) {
    
            data.map((item) => {
                let obj = {
                    "id": item.id,
                    "title": item.summary,
                    "location": "Australia",
                    "start": new Date(moment(item.start.date)),
                    "end": new Date(moment(item.end.date)),
                    "description": item.description,
                    "durationday": 'Todo el día',
                    "sameId": null
    
                }
                google.push(obj);
            })
        }
    
        console.log("Creación del array de objetos dentro de la promesa de Google", google)
    })
    .catch(err => { console.log('Error del calendario de Google API', err) })
    </code></pre>
    
    })
    

Comments are closed.