React Academy · पाठ

सामान्य React त्रुटियों को डीबग करना

गायब key की चेतावनियों, अपरिभाषित state की गड़बड़ियों और hydration त्रुटियों का निदान करें

पाठ 4, कुल 4 में से13 चरण

सामान्य React त्रुटियों को डीबग करना, CoddyKit पर React Academy का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह React Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। React Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

स्वागत है

इस पाठ में आप React की सबसे सामान्य त्रुटियों का निदान करेंगे: अनुपस्थित-कुंजी चेतावनियाँ, अपरिभाषित स्टेट की गड़बड़ियाँ, बहुत अधिक दोबारा रेंडर होना और हाइड्रेशन असंगतियाँ।

अनुपस्थित कुंजी की चेतावनी

React यह लॉग करता है: *सूची में प्रत्येक चाइल्ड के पास एक अद्वितीय "कुंजी" प्रॉप होनी चाहिए।* ऐसा तब होता है जब आप किसी सारणी को प्रत्येक सूची-तत्व में `key` प्रॉप जोड़े बिना रेंडर करते हैं। प्रत्येक सूची-तत्व में स्थिर और अद्वितीय कुंजी जोड़कर इसे ठीक करें।
// Bad
items.map(item => <li>{item.name}</li>)

// Good
items.map(item => <li key={item.id}>{item.name}</li>)

अपरिभाषित की प्रॉपर्टी पढ़ नहीं सकते

इस क्रैश का अक्सर अर्थ होता है कि पहली बार रेंडर होने पर आपका स्टेट `undefined` है। स्टेट को हमेशा सुरक्षित डिफ़ॉल्ट मान से प्रारम्भ करें (सारणियों के लिए `[]`, ऑब्जेक्ट के लिए `{}`, और उन मानों के लिए `null` जिन्हें उपयोग करने से पहले आप जाँचते हैं)।
// Bad — crashes if data is undefined
const [data, setData] = useState();
return <p>{data.name}</p>;

// Good
const [data, setData] = useState(null);
return data ? <p>{data.name}</p> : <p>Loading...</p>;

बहुत अधिक दोबारा रेंडर होने की त्रुटि

React तब *बहुत अधिक दोबारा रेंडर* होने की त्रुटि देता है जब कोई कंपोनेंट अनंत रेंडर लूप में चला जाता है — आमतौर पर ऐसा तब होता है जब आप रेंडर के दौरान बिना शर्त `setState` कॉल करते हैं या सीधे ऐसी प्रॉप के रूप में `() => setState(...)` पास करते हैं जो हर रेंडर पर ट्रिगर होती है।
// Bad — setState called on every render
function Counter() {
  const [n, setN] = useState(0);
  setN(n + 1); // infinite loop!
  return <p>{n}</p>;
}

बहुत अधिक दोबारा रेंडर होने की समस्या ठीक करना

स्टेट अपडेट को इवेंट हैंडलर या useEffect में रखें। कंपोनेंट बॉडी के शीर्ष स्तर पर सीधे setState को कभी कॉल न करें।
// Good — update only on click
function Counter() {
  const [n, setN] = useState(0);
  return <button onClick={() => setN(n + 1)}>{n}</button>;
}

हाइड्रेशन असंगति की चेतावनी

SSR ऐप में React यह चेतावनी देता है: *हाइड्रेशन विफल हुआ क्योंकि शुरुआती यूआई सर्वर पर रेंडर किए गए यूआई से मेल नहीं खाता।* सामान्य कारण हैं: रेंडर में `Date.now()` या `Math.random()` का उपयोग करना, या ब्राउज़र एक्सटेंशन द्वारा HTML जोड़ना।

हाइड्रेशन असंगतियाँ ठीक करना

गतिशील मान (टाइमस्टैम्प, यादृच्छिक ID) को `useEffect` के अंदर प्रारम्भ किए गए `useState` में रखें, ताकि सर्वर हमेशा स्थिर मान रेंडर करे और क्लाइंट माउंट होने के बाद उसे अपडेट करे।
const [ts, setTs] = useState('');
useEffect(() => {
  setTs(Date.now().toString());
}, []);
return <p>{ts}</p>;

स्टेट तुरंत अपडेट नहीं हो रहा

याद रखें कि `setState` एसिंक्रोनस होता है। उसे कॉल करने के तुरंत बाद स्टेट लॉग करने पर पुराना मान दिखाई देता है। अपडेट किया गया मान देखने के लिए, स्टेट वेरिएबल को निर्भरता के रूप में रखने वाले `useEffect` के अंदर लॉग करें।
const [count, setCount] = useState(0);

function handleClick() {
  setCount(count + 1);
  console.log(count); // still old value!
}

useEffect(() => {
  console.log('updated:', count); // correct
}, [count]);

प्रॉप बदलने पर कंपोनेंट अपडेट नहीं हो रहा

यदि प्रॉप बदलने पर कोई कंपोनेंट अपडेट नहीं होता, तो जाँचें कि आप किसी ऑब्जेक्ट या सारणी को उसी स्थान पर बदल तो नहीं रहे हैं। React रेफ़रेंस समानता का उपयोग करता है — मौजूदा ऑब्जेक्ट को बदलने से दोबारा रेंडर ट्रिगर नहीं होता।
// Bad — same reference, no re-render
const list = [];
list.push('item');
setList(list);

// Good — new array reference
setList([...list, 'item']);

त्रुटि ओवरले में त्रुटियाँ पढ़ना

जब कोई React ऐप डेवलपमेंट में क्रैश होता है, तो ब्राउज़र में एक त्रुटि ओवरले दिखाई देता है। नीचे दिया गया **कंपोनेंट स्टैक** पढ़ें — इसमें उस विफल कंपोनेंट को रेंडर करने वाला प्रत्येक कंपोनेंट दिखता है, जिससे गड़बड़ी का स्रोत स्पष्ट हो जाता है।

त्वरित जाँच

'बहुत अधिक दोबारा रेंडर' वाली React त्रुटि का सबसे सामान्य कारण क्या है?

पुनरावलोकन

अब आप React की सबसे सामान्य त्रुटियाँ ठीक कर सकते हैं: सूचियों में स्थिर कुंजियाँ जोड़ सकते हैं, स्टेट को सुरक्षित रूप से प्रारम्भ कर सकते हैं, रेंडर में setState से बच सकते हैं, हाइड्रेशन असंगतियों को संभाल सकते हैं और त्रुटि ओवरले का कंपोनेंट स्टैक पढ़ सकते हैं।

पाठ्यक्रम पूरा हुआ

बधाई हो! आपने **React DevTools और डीबगिंग** पूरा कर लिया है। अब आप DevTools इंस्टॉल कर सकते हैं, कंपोनेंट ट्री और स्टेट का निरीक्षण कर सकते हैं, रेंडर की प्रोफाइलिंग कर सकते हैं और React की सबसे सामान्य रनटाइम त्रुटियों का निदान कर सकते हैं।
शुरुआत निःशुल्क

एआई शिक्षक के साथ React सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
88
पाठ
324

अक्सर पूछे जाने वाले प्रश्न

क्या “सामान्य React त्रुटियों को डीबग करना” पाठ निःशुल्क है?

हाँ—“सामान्य React त्रुटियों को डीबग करना” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और React Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। React Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“सामान्य React त्रुटियों को डीबग करना” में मैं क्या सीखूँगा?

गायब key की चेतावनियों, अपरिभाषित state की गड़बड़ियों और hydration त्रुटियों का निदान करें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ React Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या React Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर React Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।

“सामान्य React त्रुटियों को डीबग करना” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस React Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर React Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. React DevTools इंस्टॉल करना और खोलना
  2. घटक ट्री और Props का निरीक्षण
  3. Profiler टैब का उपयोग
  4. सामान्य React त्रुटियों को डीबग करना
← React Academy पर वापस जाएँ