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

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

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

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