Отображение данных из jsonplaceholder API с помощью реакционных хуков - PullRequest
0 голосов
/ 14 января 2020

У меня простой отдых API, я пытаюсь отобразить пользователей из jsonplaceholder поддельные API

Вот мой компонент функции

import React, {useState, useEffect} from "react";
import axios from 'axios';

 export default function TableList() {

  const [data, setData] = useState({ hits: [] });

    useEffect(() => {
      const fetchData = async () => {
        const result = await axios(
          'https://jsonplaceholder.typicode.com/users',
        );
        setData(result.data);
          console.log(result.data);
      };
      fetchData();
    }, []);


  return (
    <div>
      <ul>
            {data.hits.map(item => (
              <li key={item.id}>
              <h1>{item.name}</h1>
              </li>
            ))}
          </ul>

    </div>

  );
}

К сожалению, я получаю следующую ошибку:

TableList.js:22 Uncaught TypeError: Cannot read property 'map' of undefined

Что не так с моим кодом?

1 Ответ

2 голосов
/ 14 января 2020

Вы устанавливаете данные неправильно, и вы должны проверить NULL data.hits. Вот рабочий пример

function TableList() {
  const [users, setUsers] = useState({ hits: [] });

  useEffect(() => {
    const fetchData = async () => {
      const { data } = await axios(
        "https://jsonplaceholder.typicode.com/users"
      );
      setUsers({ hits: data });
    };
    fetchData();
  }, [setUsers]);

  return (
    <div>
      <ul>
        {users.hits &&
          users.hits.map(item => (
            <li key={item.id}>
              <span>{item.name}</span>
            </li>
          ))}
      </ul>
    </div>
  );
}

https://codesandbox.io/s/affectionate-lehmann-17qhw

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