Задать вопрос
@bzotsss

Почему не приходит значение в useState?

У меня есть кастомный хук useApiData
вот его код :
import { useState, useEffect } from "react";
import { useDispatch } from "react-redux";
import { getPageCountAC } from "../redux/mainPageReducer";
import { getUsersAC } from "../redux/mainPageReducer";

export const useApiData = () => {
  const dispatch = useDispatch()
  const [data, setData] = useState([]);
  const [isLoading, setIsLoading] = useState(true);
  const [isError, setIsError] = useState(false);
  const [results,setResults] = useState([])

  useEffect(() => {
    const getApiData = async () => {
      try {
        setIsLoading(true);
        const response = await fetch("https://itrex-react-lab-files.s3.eu-central-1.amazonaws.com/react-test-api.json");
        const results = await response.json();
        if (response.status!==200) {
          throw new Error('Error');
        }
        setData(results);
        setResults(results)
        dispatch(getUsersAC(results))
        dispatch(getPageCountAC(results.length))
      } catch (e) {
        setIsLoading(false);
        setIsError(false);
      } finally {
        setIsLoading(false);
      }
    };
    getApiData();
  }, []);
  return {
    data,
    isLoading,
    isError,
    setData,
    results
  };
};

я получаю из него данные через useApiData таким образом :
const users = useApiData();
  const [userss, setUserss] = useState(users.data);

Значение в users есть но при этом оно не сетается в useState в чём может быть проблема ? Как пофиксить ? А точнее что я не понимаю и делаю не так?
  • Вопрос задан
  • 332 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
Alexandroppolus
@Alexandroppolus
кодир
Всё то же самое, как и здесь https://qna.habr.com/q/1041970

конкретно в данном случае const [userss, setUserss] = useState(users.data); выглядит как лишний, ведь можно пользоваться тем же самым users. setData, то есть стейт уже есть
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
ITK academy Нижний Новгород
от 80 000 до 120 000 ₽
ITK academy Воронеж
от 50 000 до 90 000 ₽