.mapa no es una función cuando la obtención de datos de la API de reactjs

0

Pregunta

Estoy usando una API para obtener los datos. Cuando me de la consola.registro de mis datos, se muestra como una matriz. Pero cuando intento mapa sobre el mismo para obtener los datos a mostrar, me dice que .mapa no es una función. He creado una costumbre useFetch gancho y luego me voy a importar en un componente separado. Aquí está mi código y una captura de pantalla de la consola.registro:

useFetch.js

import { useEffect, useState } from 'react'

function useFetch(url) {
    const [data, setData] = useState(null)
    const [isLoading, setIsLoading] = useState(true)
    const [error, setError] = useState(null)

    useEffect(() => {
        fetch(url)
            .then(response => {
                if (!response.ok) {
                    throw Error("Sorry, couldn't fetch data for this resource!")
                }
                return response.json()
            })
            .then(responseData => {
                setData(responseData)
                setIsLoading(false)
                setError(null)
            })
            .catch(error => {
                setIsLoading(false)
                setError(error.message)
            })
    }, [url])

    return { data, isLoading, error }
}

export default useFetch

List.js

import React from 'react'
import useFetch from './useFetch'

function PrizeList2017() {
    const { data } = useFetch('http://api.nobelprize.org/v1/prize.json?year=2017&yearTo=2017')

    return (
        <div className="prize-list-2017-container">
            <h1>2017</h1>
            {data.map(prize => (
                <div key={prize.id}>
                    <h2>{prize.category}</h2>
                </div>
            ))}
            {console.log(data)}
        </div>
    )
}

export default PrizeList2017

la consola.registro de

la consola.información de registro de la imagen

Su ayuda es muy apreciada!

api arrays javascript map-function
2021-11-23 19:55:22
1

Mejor respuesta

1

Este tipo de datos no está presente sí cuando intenta hacer el mapa con el fin de hacer:

  {data && data.prizes && data.prizes.map(prize => (
2021-11-23 20:25:42

Hola! Sí, he intentado ya y todavía estaba recibiendo el mismo error.
cjb

no veo el registro de la consola, los datos de un objeto y de datos.los premios de una matriz
Konflex

Bueno, yo pensé lo mismo, pero la consola.registro estaba diciendo matriz! Todavía estoy seguro de cómo extraer los datos del objeto!
cjb

Intente mapa con los datos.los premios, que se debe, he editado mi mensaje
Konflex

Oh muchas gracias esto funcionó! Protector de la vida!!!
cjb

Esto es debido a definir inicialmente los datos como nulo por lo que no puede acceder a los datos.los premios cuando es nulo, es necesario comprobar que los datos no es nula para hacer el mapa
Konflex

¿Por qué no iba a funcionar con sólo {datos && datos.premios.mapa(premio => (? Sólo quiere realmente entender por qué la adición de los datos.los premios en el centro de trabajo!
cjb

Realmente aprecio toda su ayuda, muchas gracias!
cjb

En otros idiomas

Esta página está en otros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Slovenský
..................................................................................................................