簡體   English   中英

eslint-plugin-react-hooks 出現意外錯誤(react-hooks/exhaustive-deps)

[英]eslint-plugin-react-hooks is giving unexpected errors (react-hooks/exhaustive-deps)

我有一個問題,我的 vscode eslint 給了我錯誤的警告。 我在反應組件中有一個簡單的 function ,我正在嘗試使用 useCallBack 掛鈎進行優化。

這是簡單的 function ,其中我得到了兩個道具,並且在我創建的參數 object 中使用,根據文檔,我將這兩個道具作為 useCallBack 的依賴項。

const Test = ({ ReportAddressNumber, ClientNumber }) => {
const [test, setTest] = useState({ count: 0 });
const fetchSampleIDs = useCallback(() => {
  setTest(true);
  const URL = `/Samples`;
  const params = {
    ReportAddressNumber,
    ClientNumber,
  };

  fetch(URL, params)
}, [ClientNumber, ReportAddressNumber]);

useEffect(() => {
  fetchSampleIDs();
}, [fetchSampleIDs]);

 return <h1>{test.count}</h1>;
};

現在問題出在 vscode 中,它告訴我這兩個道具作為 useCallback 中的依賴項是不必要的。

React Hook useCallback has unnecessary dependencies: 'ClientNumber' and 'ReportAddressNumber'. Either exclude them or remove the dependency array.eslint(react-hooks/exhaustive-deps)

在此處輸入圖像描述

我可以用我的.eslintrcpackage.json文件重現這一點。 我創建了這個代碼框來解決這個問題,為了查看實際問題,您需要將代碼框導出為 zip 並運行npm install並在 vscode 中查看它。

https://codesandbox.io/s/kind-mahavira-fvsub

我在這里感謝您的知識和貢獻,謝謝。

花了4個小時后,我終於得到了答案。

存在沖突的依賴關系。 我正在使用eslint-config-airbnb: 16.1.0 ,它不包括任何 react-hooks linting 配置。 但是,我自己安裝了與eslint-config-aribnb版本沖突的eslint-plugin-react-hooks

按照說明升級eslint-config-airbnb可以解決我的問題。 如果有人有同樣的問題。

暫無
暫無

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

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