১ 16.৮..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/issues/14920 পেয়েছি যেখানে সম্ভাব্য সমাধান হ'ল You can always // eslint-disable-next-line react-hooks/exhaustive-deps if you think you know what you're doing.
আমি যা করছি তা নিয়ে আমি আত্মবিশ্বাসী নই আমি এখনও এটি বাস্তবায়নের চেষ্টা করিনি।
আমার এই বর্তমান সেটআপ প্রতিক্রিয়া হুক ব্যবহারের প্রভাবটি চিরতরে / অসীম লুপ অব্যাহত থাকে এবং একমাত্র মন্তব্যটি 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]);