@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 в чём может быть проблема ? Как пофиксить ? А точнее что я не понимаю и делаю не так?
  • Вопрос задан
  • 286 просмотров
Пригласить эксперта
Ответы на вопрос 1
Alexandroppolus
@Alexandroppolus
кодир
Всё то же самое, как и здесь https://qna.habr.com/q/1041970

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

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

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