В чем проблема в ловушке React при получении данных из API - PullRequest
0 голосов
/ 10 марта 2020

У меня есть следующий компонент функции

import React ,{useState,useEffect} from "react";
export default function Statistics() {
       const [data, setData] = useState([]);

    useEffect(() => {
        fetch("https://hn.algolia.com/api/v1/search")
            .then(response => response.json())
            .then(data => setData(data));
    }, []);


       return (

                data.map(el =>
                    <div>{el.title}</div>
                )

              );
}

Я получаю ошибку:

Uncaught TypeError: data.map не является функцией

в чем проблема в предыдущем коде?

1 Ответ

1 голос
/ 10 марта 2020

Только что проверил конечную точку API, с которой вы работаете. Кажется, вам нужно свойство hits, потому что это массив. В вашем текущем решении data - это объект, которому не нужно вызывать .map(). Если вы измените значение с data на data.hits, то вы можете перебрать массив с помощью .map().

Попробуйте выполнить следующее:

useEffect(() => {
   fetch("https://hn.algolia.com/api/v1/search")
   .then(response => response.json())
   .then(data => setData(data.hits));
}, []);

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...