Как вызвать пользовательский хук внутри кнопки отправки формы? - PullRequest
0 голосов
/ 05 августа 2020

Я создаю настраиваемый перехватчик, который извлекает запросы из сети. Я хочу вызвать настраиваемый перехватчик при нажатии кнопки отправки формы, но в зависимости от правил ловушки я не могу этого сделать. как реализовать этот сценарий?

этот настраиваемый хук:

const useRequest = (url, method, dependencies, data = null) => {
  const [response, setResponse] = useState(null);
  const [error, setError] = useState(null);
  const [loading, setLoading] = useState(false);

  useEffect(() => {
    const fetchData = async () => {
      setLoading(true);
      try {
        const res = await request[method](url, data);
        setResponse(res);
        setLoading(false);
      } catch (e) {
        setError(e);
        setLoading(false);
      }
    };
    fetchData();
  }, dependencies);
  return { response, error, loading };
};

1 Ответ

0 голосов
/ 05 августа 2020

Переместить функцию fetchData из useEffect и экспортировать ее:

const useRequest = (url, method, dependencies, data = null) => {
  const [response, setResponse] = useState(null);
  const [error, setError] = useState(null);
  const [loading, setLoading] = useState(false);

    const fetchData = async () => {
      setLoading(true);
      try {
        const res = await request[method](url, data);
        setResponse(res);
        setLoading(false);
      } catch (e) {
        setError(e);
        setLoading(false);
      }
    };
  useEffect(() => {

    fetchData();
  }, dependencies);
  return { response, error, loading, fetchData };
};

Чем когда вы можете вызвать ее в любом месте вашего кода.

...