React Academy · पाठ

React.Children यूटिलिटी

children को सुरक्षित रूप से बदलने के लिए React.Children.map, count और toArray का उपयोग करें

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

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

स्वागत है

इस पाठ में आप React.Children उपयोगिताओं — map, count, toArray और forEach — का उपयोग करके, पास किए गए चिल्ड्रेन की संख्या चाहे जितनी हो, उन्हें सुरक्षित रूप से दोहराना और बदलना सीखेंगे।

सीधे ऐरे मेथड्स की समस्या

क्योंकि `props.children` एकल एलिमेंट, ऐरे या undefined हो सकता है, इसलिए उस पर सीधे `.map()` कॉल करने से प्रोग्राम क्रैश हो जाएगा। React.Children उपयोगिताएँ इन सभी स्थितियों को सुरक्षित रूप से संभालती हैं।
// Unsafe — crashes if children is a single element
children.map(c => ...);

// Safe
React.Children.map(children, c => ...);

React.Children.map

यह `Array.prototype.map` की तरह काम करता है, लेकिन एकल चाइल्ड, अनेक चिल्ड्रेन और null/undefined को सुरक्षित रूप से संभालता है। यह क्लोन किए गए एलिमेंट्स का ऐरे लौटाता है (या कॉलबैक जो भी लौटाता है)।
function List({ children }) {
  return (
    <ul>
      {React.Children.map(children, (child, i) => (
        <li key={i}>{child}</li>
      ))}
    </ul>
  );
}

React.Children.count

`React.Children.count(children)` चिल्ड्रेन की संख्या लौटाता है। यह एकल एलिमेंट को सही रूप से 1 और null/undefined को 0 गिनता है।
function RequiresTwo({ children }) {
  if (React.Children.count(children) !== 2) {
    throw new Error('Exactly two children required');
  }
  return <div>{children}</div>;
}

React.Children.toArray

यह चिल्ड्रेन को स्थिर कुंजियों वाले एक सपाट ऐरे में बदलता है। इससे आप नेस्टिंग की चिंता किए बिना सामान्य ऐरे मेथड्स का उपयोग करके चिल्ड्रेन को क्रमबद्ध, filter या slice कर सकते हैं।
function Reversed({ children }) {
  const arr = React.Children.toArray(children);
  return <>{arr.reverse()}</>;
}

React.Children.forEach

यह `.map()` की तरह है, लेकिन कोई मान नहीं लौटाता। इसका उपयोग तब करें जब आप चिल्ड्रेन पर साइड इफ़ेक्ट के लिए दोहराना चाहते हों, जैसे उनके प्रकारों की जाँच करना या कोई खोज-सारणी बनाना।
React.Children.forEach(children, child => {
  if (!React.isValidElement(child)) {
    console.warn('Non-element child found');
  }
});

React.Children.only

`React.Children.only(children)` यह सुनिश्चित करता है कि ठीक एक चाइल्ड एलिमेंट हो और उसे लौटाता है। यदि कोई चाइल्ड न हो या एक से अधिक चिल्ड्रेन हों, तो यह त्रुटि उत्पन्न करता है। एकल-चाइल्ड API लागू करने के लिए यह उपयोगी है।
function SingleChild({ children }) {
  const child = React.Children.only(children);
  return React.cloneElement(child, { 'data-wrapped': true });
}

चाइल्ड के प्रकारों की जाँच

केवल विशिष्ट घटक प्रकारों को चिल्ड्रेन के रूप में स्वीकार करने के लिए `React.Children.forEach` और `React.isValidElement` को चाइल्ड के प्रकार के साथ मिलाकर उपयोग करें।
React.Children.forEach(children, child => {
  if (child.type !== TabPanel) {
    throw new Error('Only TabPanel children allowed');
  }
});

React.Children बनाम Array.from

React 18 और उसके बाद, चिल्ड्रेन एक React एलिमेंट ट्री हो सकते हैं जो साधारण ऐरे नहीं होता। एकल एलिमेंट और फ़्रैगमेंट से जुड़ी समस्याओं से बचने के लिए हमेशा Array.from के बजाय React.Children को प्राथमिकता दें।

आधुनिक विकल्प: toArray से सपाट ऐरे बनाना

यदि आपको जटिल रूपांतरण करने हों, तो सपाट और कुंजी वाले ऐरे को पाने के लिए पहले `React.Children.toArray(children)` कॉल करें, फिर उस पर सामान्य ऐरे मेथड्स लागू करें।
const items = React.Children.toArray(children);
const first = items[0];
const rest = items.slice(1);

त्वरित जाँच

कौन-सा React.Children मेथड एकल एलिमेंट, ऐरे और null/undefined चिल्ड्रेन को सुरक्षित रूप से संभालता है — Array.map की तरह, लेकिन अधिक विश्वसनीय रूप से?

पुनरावलोकन

सुरक्षित रूप से दोहराने के लिए React.Children.map, संख्या जाँचने के लिए count, ऐरे मेथड्स के लिए toArray, साइड इफ़ेक्ट वाले दोहराव के लिए forEach और ठीक एक चाइल्ड सुनिश्चित करने के लिए only का उपयोग करें।

आगे

अगला पाठ: **ऑब्जेक्ट प्रॉप्स के माध्यम से नामित स्लॉट्स** — आप नामित प्रॉप्स के माध्यम से JSX पास करके header, body और footer स्लॉट्स लागू करेंगे।
शुरुआत निःशुल्क

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

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

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

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

क्या “React.Children यूटिलिटी” पाठ निःशुल्क है?

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

“React.Children यूटिलिटी” में मैं क्या सीखूँगा?

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

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

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

“React.Children यूटिलिटी” पाठ पूरा करने में कितना समय लगता है?

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

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

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

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

  1. props.children की मूल बातें
  2. React.Children यूटिलिटी
  3. Object Props से नामित Slots
  4. cloneElement से Props क्लोन और इंजेक्ट करना
← React Academy पर वापस जाएँ