З React 16.8.6 (це було добре в попередній версії 16.8.3), я отримую цю помилку, коли намагаюся запобігти нескінченний цикл на запит на отримання
./src/components/BusinessesList.js
Line 51: React Hook useEffect has a missing dependency: 'fetchBusinesses'.
Either include it or remove the dependency array react-hooks/exhaustive-deps
Мені не вдалося знайти рішення, яке зупинить нескінченний цикл. Я хочу триматися подалі від використання useReducer()
. Я знайшов цю дискусію https://github.com/facebook/react/isissue/14920, де можливим рішенням є You can always // eslint-disable-next-line react-hooks/exhaustive-deps if you think you know what you're doing.
не впевненість у тому, що я роблю, тому я ще не намагався її здійснити.
У мене є поточна установка React hook useEffect працює безперервно назавжди / нескінченний цикл, і єдиний коментар, про useCallback()
який я не знайомий.
Як я зараз використовую useEffect()
(який я хочу запустити лише один раз на початку, подібно до componentDidMount()
)
useEffect(() => {
fetchBusinesses();
}, []);
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
});
};
useCallback()
. Так, наприклад:const fetchBusinesses= useCallback(() => { ... }, [...])
іuseEffect()
виглядатиме так:useEffect(() => { fetchBusinesses(); }, [fetchBusinesses]);