@smoove1117

Почему я не могу получить данные с помощью fetch?

если я пишут таким синтаксисом то data у меня не пустая
const Spisok = () => {
const token = localStorage.getItem("token")
const [user, setUser] = useState([])
    useEffect(()=> {
        fetch('https://jsonplaceholder.typicode.com/users', {
            method: 'GET',
             headers: {
            "Content-Type": "application/json",
            'Authorization': `Bearer ${token}`
        },
        }).then((res) =>  res.json()).then((data) => {
setUser(data)
        })
    }, [])
    

    return (
        <>
        {
            user.map((u) => {
                return (
                    <div>
                        <p>{u.name}</p>
                    </div>
                )
            })
        }
        </>
    )
}

export default Spisok

Если так то пустая потому что res тоже пустой
import { useEffect, useState } from "react"



const Spisok = () => {
const token = localStorage.getItem("token")
const [user, setUser] = useState([])
    useEffect(()=> {
        fetch('https://jsonplaceholder.typicode.com/users', {
            method: 'GET',
             headers: {
            "Content-Type": "application/json",
            'Authorization': `Bearer ${token}`
        },
        }).then((res) => {
            res.json()
        }).then((data) => {
setUser(data)
        })
    }, [])
    

    return (
        <>
        {
            user.map((u) => {
                return (
                    <div>
                        <p>{u.name}</p>
                    </div>
                )
            })
        }
        </>
    )
}

export default Spisok
  • Вопрос задан
  • 140 просмотров
Решения вопроса 2
@chemdev
.then((res) => {
            res.json()
        })

коллбэк ничего не возвращает
Ответ написан
Комментировать
@0x0f80
Во втором варианте вы забыли вернуть результат res.json(), из-за чего data становится undefined. Добавьте return res.json() в первом .then().
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы