簡體   English   中英

如何在函數中使用自定義鈎子?

[英]How can i use custom hooks inside my function?

我試圖在函數內使用鈎子,但是它不起作用,所以現在我嘗試發送一個回調函數來重置鈎子參數,但是它仍然無法正常工作。

如何在我的情況下使用此自定義掛鈎?

const del = useFetch(null);
  const handleDelete = id => {
    del.setParams({
       hookUrl: "https://localhost:44354/api/car/" + id, 
       hookOptions: {}
    });

    console.log(del.response);
  };

鈎子對GETS的工作正常,因為我沒有其他想要做的行為,但是對於刪除,我需要彈出一個模態,例如,我知道我可以直接使用提取,但只是出於好奇。

import React from "react";

const useFetch = (url, options) => {
  debugger;
  const [params, setParams] = React.useState({
    hookUrl: url,
    hookOptions: options
  });
  const [response, setResponse] = React.useState(null);
  const [error, setError] = React.useState(null);
  React.useEffect(() => {
    const fetchData = async () => {
      try {
        const res = await fetch(params.hookUrl, params.hookOptions);
        const json = await res.json();
        setResponse(json);
      } catch (error) {
        setError(error);
      }
    };
    fetchData();
  }, []);
  return { setParams, response, error };
};
export default useFetch;
  1. 您不能在函數內部使用鈎子。
  2. 您正在使用setParams(以錯誤的方式使用setState):
const handleDelete = id => {
    del.setParams({
       hookUrl: "https://localhost:44354/api/car/" + id, 
       hookOptions: {}
    });
    console.log(del.response);
  };

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM