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/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]);