когда я вызываю useFetch (initUrl) несколько раз одновременно, то это разумно - PullRequest
0 голосов
/ 30 сентября 2019

После прочтения этой статьи о https://robinwieruch.de/react-hooks-fetch-data. я настроил useFetch () вот так;мой вопрос: когда я вызываю useFetch (initUrl) несколько раз в одно и то же время, это разумно?

Например, я хочу отправить несколько запросов одновременно в одном компоненте хуков. Поэтому я вызываю useFetch (initUrl) несколько раз в одно и то же время, запрошенный URL-адрес отличается.

// common util
const useFetch = (initUrl) => {
  const [data, setData] = useState({ hits: [] });
  const [url, setUrl] = useState(initUrl);
  const [isLoading, setIsLoading] = useState(false);
  const [isError, setIsError] = useState(false);
  useEffect(() => {
    const fetchData = async () => {
      setIsError(false);
      setIsLoading(true);
      try {
        const result = await axios(url);
        setData(result.data);
      } catch (error) {
        setIsError(true);
      }
      setIsLoading(false);
    };
    fetchData();
  }, [url]);
  return [{ data, isLoading, isError }, setUrl];
}


// then call in hooks component
function HooksComponent() {
  const [getData1] = useFetch(url1);
  const [getData2] = useFetch(url2);

  // then do something
  return (
    ....
  );
}

...