如果除了效果以外没有在其他地方使用fetchBusinesses方法,则可以将其移至效果中并避免出现警告
useEffect(() => { const fetchBusinesses = () => { return fetch("theURL", {method: "GET"} ) .then(res => normalizeResponseErrors(res)) .then(res => { return res.json(); }) .then(rcvdBusinesses => { // some stuff }) .catch(err => { // some error handling }); }; fetchBusinesses();}, []);但是,如果在渲染之外使用fetchBusinesses,则必须注意两点
- 有没有与你的任何问题, 不 传递
fetchBusinesses
当它与它的外围封闭件支架中的二手的方法是什么? - 您的方法是否依赖于从其封闭包中收到的一些变量?事实并非如此。
- 在每个渲染上,都会重新创建fetchBusinesses,因此将其传递给useEffect会引起问题。因此,如果要将fetchBusinesses传递给依赖项数组,则必须记住它。
综上所述,我想说的是,如果您在
fetchBusinesses外部使用,则可以使用
useEffect禁用规则,
// eslint-disable-next-line react-hooks/exhaustive-deps否则可以将方法移到useEffect内部
要禁用该规则,您可以这样写
useEffect(() => { // other pre ... // eslint-disable-next-line react-hooks/exhaustive-deps}, [])


