@saqo_tadevosyan

Не изменяется стейт,что не так?

Нужно чтоб при загрузке страницы получил данные из сервера и сохранил в стейт,проблема в том что стейт не изменяется. Вот кусок кода.
const { loading, error, request } = useHttp();
const [items, setItems] = useState([]);

let getItems = () => {
try {
const data = request("/api/item", "GET").then((answer) => {
setItems(JSON.parse(answer));

});

return JSON.parse(data);
} catch (error) {
console.log(error.message);
}
};

useEffect(() => {
getItems();
new WOW.WOW().init();
return () => {};
}, []);
  • Вопрос задан
  • 353 просмотра
Пригласить эксперта
Ответы на вопрос 4
dimovich85
@dimovich85 Куратор тега JavaScript
Уроки по JS - https://t.me/school_ofpery
Вы собрались синхронно взять данные и поменять стейт до того, как запрос будет выполнен. По той же причине try catch тоже не будут работать.
Ответ написан
@saqo_tadevosyan Автор вопроса
Даже если удалить запрос на сервер и в useeffect написать setItem("test") всё равно стейт не меняется.
Ответ написан
@NeverSmileMan
выложи полный компонент с хуком useHttp(), и будет тебе счастье
Ответ написан
@holysheepcoder
Поддерживаю. Выложи нормальный компонент как он есть.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы