Skip to content

Commit 395f718

Browse files
committed
Incorporating changes
1 parent 39ecff7 commit 395f718

File tree

1 file changed

+16
-16
lines changed

1 file changed

+16
-16
lines changed

beta/src/pages/learn/sharing-state-between-components.md

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -77,13 +77,13 @@ h3, p { margin: 5px 0px; }
7777

7878
<DiagramGroup>
7979

80-
<Diagram name="sharing_state_child" height={367} width={477} alt="Diagram showing a tree of three components, one parent labeled Accordion and two children labeled Panel. Both Panel components contain isActive with value false.">
80+
<Diagram name="sharing_state_child" height={367} width={477} alt="तीन कौम्पोनॅन्ट वाले पेड़ का चित्र, जिसमे एक अक्कौरडियन लेबल वाला पैरेंट है और दो पैनल लेबल वाले चिल्ड्रेन. दोनों पैनल कौम्पोनॅन्ट में false वैल्यू वाली isActive है।">
8181

8282
शुरुआत में दोनों `Panel`s की `isActive` state `false` है, इसलिए दोनों कोलैप्स्ड दिख रहे हैं
8383

8484
</Diagram>
8585

86-
<Diagram name="sharing_state_child_clicked" height={367} width={480} alt="The same diagram as the previous, with the isActive of the first child Panel component highlighted indicating a click with the isActive value set to true. The second Panel component still contains value false." >
86+
<Diagram name="sharing_state_child_clicked" height={367} width={480} alt="पिछले चित्र की तरह, इसमें पहेले पैनल चाइल्ड कौम्पोनॅन्ट का isActive हाईलाइट किया गया है, जिसका मतलब है की इसकी isActive वैल्यू क्लिक द्वारा true पर सेट की गयी है। दूसरा पैनल कौम्पोनॅन्ट में अभी भी false वैल्यू होगी।" >
8787

8888
किसी भी `Panel` की `isActive` state तभी अपडेट होगी जब उस `Panel` का बटन दबाया जायेगा
8989

@@ -270,13 +270,13 @@ h3, p { margin: 5px 0px; }
270270
271271
<DiagramGroup>
272272
273-
<Diagram name="sharing_state_parent" height={385} width={487} alt="Diagram showing a tree of three components, one parent labeled Accordion and two children labeled Panel. Accordion contains an activeIndex value of zero which turns into isActive value of true passed to the first Panel, and isActive value of false passed to the second Panel." >
273+
<Diagram name="sharing_state_parent" height={385} width={487} alt="तीन कौम्पोनॅन्ट' वाले पेड़ का चित्र, जिसमे एक अक्कौरडियन लेबल वाला पैरेंट है और दो पैनल लेबल वाले चिल्ड्रेन। अक्कौरडियन में शून्य वैल्यू की activeIndex है जिससे पहले पैनल में पास की गयी isActive वैल्यू true में बदल जाती है, और दुसरे पैनल में पास की गयी isActive वैल्यू false में बदल जाती है।" >
274274
275-
शुरुआत में `Accordion` का `activeIndex` `0` है , इसलिए पहले `Panel` को `isActive = true` मिलेगा.
275+
शुरुआत में `Accordion` का `activeIndex` `0` है , इसलिए पहले `Panel` को `isActive = true` मिलेगा
276276
277277
</Diagram>
278278
279-
<Diagram name="sharing_state_parent_clicked" height={385} width={521} alt="The same diagram as the previous, with the activeIndex value of the parent Accordion component highlighted indicating a click with the value changed to one. The flow to both of the children Panel components is also highlighted, and the isActive value passed to each child is set to the opposite: false for the first Panel and true for the second one." >
279+
<Diagram name="sharing_state_parent_clicked" height={385} width={521} alt="पिछले चित्र की तरह, इस चित्र में पैरेंट अक्कौरडियन कौम्पोनॅन्ट के पैनल का isActive हाईलाइट किया गया है, जिसका मतलब है की इसकी वैल्यू क्लिक द्वारा एक पर सेट की गयी है। दोनों चिल्ड्रेन पैनल कौम्पोनॅन्ट्स का फ्लो भी हाईलाइट किया गया है, और हर चाइल्ड कौम्पोनॅन्ट को पास की गयी isActive वैल्यू विपरीत है: पहले पैनल के लिए false और दुसरे के लिए true।" >
280280
281281
जब `Accordion` के `activeIndex` की state बदल कर `1` होगी, तब दूसरे `Panel` को `isActive = true` मिलेगा
282282
@@ -286,42 +286,42 @@ h3, p { margin: 5px 0px; }
286286
287287
<DeepDive title="नियंत्रित और अनियंत्रित कौम्पोनॅन्ट्स">
288288
289-
सामान्यतः लोकल state वाले कौम्पोनॅन्ट को "अनियंत्रित" कहा जाता है। उदाहरण के लिए, `isActive` state वेरिएबल के साथ वाले ओरिजिनल `Panel` कौम्पोनॅन्ट को इसीलिए अनियंत्रित कहा जायेगा क्युकी इसका पैरेंट उसके पैनल के एक्टिव होने या न होने को प्रभावित नहीं कर सकता।
289+
लोकल state वाले कौम्पोनॅन्ट को "अनियंत्रित" कहा जाना आम बात है। उदाहरण के लिए, `isActive` state वेरिएबल के साथ वाले ओरिजिनल `Panel` कौम्पोनॅन्ट को इसीलिए अनियंत्रित कहा जायेगा क्युकी इसका पैरेंट उसके पैनल के एक्टिव होने या न होने को प्रभावित नहीं कर सकता।
290290
291291
इसके ठीक विपरीत, एक कौम्पोनॅन्ट को "नियंत्रित" कहा जायेगा यदि उसकी महत्वपूर्ण सूचना, उसके अपने लोकल state के बजाये props द्वारा चलायी जाएगी। इस कारण, पैरेंट कौम्पोनॅन्ट उसके स्वभाव को पूरी तरह से स्पष्ट करता है। `isActive` prop वाला अंतिम कौम्पोनॅन्ट, `Accordion` कौम्पोनॅन्ट से नियंत्रीत होगा।
292292
293293
अनियंत्रित कौम्पोनॅन्ट, अपनी कम कॉन्फ़िगरेशन ज़रूरतों के कारण अपने पेरेंट्स के अन्दर आसानी से इस्तेमाल किये जा सकते है। परन्तु उनको समन्वित करने के लिए ये कम लचीले है। नियंत्रित कौम्पोनॅन्ट अत्यधिक लचीले है परन्तु उसके लिए उनके पैरेंट कौम्पोनॅन्ट को props द्वारा पूरी तरह कॉन्फ़िगर करने की आवश्यकता है।
294294
295-
प्रमाणिक तौर पर नियंत्रित और अनियंत्रित पूरी तरह से तांत्रिक शब्द नहीं है--प्रत्येक कौम्पोनॅन्ट अधिकतर लोकल state और props का मिश्रण है। परन्तु ये कौम्पोनॅन्ट्स के प्रारूप और क्षमताओं के बारे में बताने का कारगर तरीका है।
295+
प्रमाणिक तौर पर नियंत्रित और अनियंत्रित पूरी तरह से टेक्निकल शब्द नहीं है--प्रत्येक कौम्पोनॅन्ट अधिकतर लोकल state और props का मिश्रण है। परन्तु ये कौम्पोनॅन्ट्स के प्रारूप और क्षमताओं के बारे में बताने का कारगर तरीका है।
296296
297297
कौम्पोनॅन्ट के बारे में लिखते समय इस बात का ख्याल रखे की कौनसी सूचना नियंत्रित (props द्वारा) और कौनसी अनियंत्रित (states द्वारा) है। पर यह आप बाद में बदलकर रीफैक्टर कर सकते है।
298298
299299
</DeepDive>
300300
301-
## हर state के लिए एक ही सोर्स ऑफ़ truth {/*a-single-source-of-truth-for-each-state*/}
301+
## हर state के लिए एक ही सोर्स ऑफ़ ट्रुथ {/*a-single-source-of-truth-for-each-state*/}
302302
303-
React एप्लीकेशन में, कई कौम्पोनॅन्ट का अपना एक state होगा। Inputs की तरह के कुछ state अपने Leaf कौम्पोनॅन्ट के नजदीक "रह" सकते हैं (Tree के बॉटम में रहने वाले कौम्पोनॅन्ट्स)। कुछ state एप्प के टॉप पर "रह" सकते हैं। उदाहरण के लिए कुछ client-side routing लाइब्रेरीज implement करते समय उनके करंट state को React state में स्टोर किया जाता है और फिर props की मदद से पास किया जाता है!
303+
React एप्लीकेशन में, कई कौम्पोनॅन्ट का अपना एक state होगा। इनपुट्स की तरह के कुछ state अपने लीफ कौम्पोनॅन्ट (ट्री के सबसे निचे में रहने वाले कौम्पोनॅन्ट्स) के नजदीक "रह" सकते हैं। कुछ state एप्प के टॉप पर "रह" सकते हैं। उदाहरण के लिए कुछ client-side राउटिंग लाइब्रेरीज इम्प्लीमेंट करते समय उनके करंट state को React state में स्टोर किया जाता है और फिर props की मदद से पास किया जाता है!
304304
305-
**किसी भी state के प्रत्येक विशिष्ट टुकड़े के लिए, आप वह कौम्पोनॅन्ट चुनेंगे जिसका वे "हिस्सा" हैं**। इस सिद्धांत को "सच्चाई का एक ही स्त्रोत" या ["सिंगल सोर्स ऑफ़ truth"](https://en.wikipedia.org/wiki/Single_source_of_truth) कहा जाता है। इसका मतलब यह नहीं की सारे state एक ही जगह रहते हैं--बल्कि state के _हर_ हिस्से के लिए, एक _विशिष्ट_ कौम्पोनॅन्ट है जो इस सूचना को अपने पास रखता है। सो कौम्पोनॅन्ट के बीच साझा (shared) state की duplicating करने के बजाये, आप _उनको उठा (लिफ्ट) कर_, उनके कॉमन साझा (shared) पैरेंट तक ले जायेंगे और उन्हें उनके जरूरतमंद चिल्ड्रेन तक _पास_ कर देंगे।
305+
**किसी भी state के प्रत्येक विशिष्ट टुकड़े के लिए, आप वह कौम्पोनॅन्ट चुनेंगे जिसका वे "हिस्सा" हैं**। इस सिद्धांत को "सच्चाई का एक ही स्त्रोत" या ["सिंगल सोर्स ऑफ़ ट्रुथ"](https://en.wikipedia.org/wiki/Single_source_of_truth) कहा जाता है। इसका मतलब यह नहीं की सारे state एक ही जगह रहते हैं--बल्कि state के _हर_ हिस्से के लिए, एक _विशिष्ट_ कौम्पोनॅन्ट है जो इस सूचना को अपने पास रखता है। कौम्पोनॅन्ट के बीच शेयर्ड state की डुप्लिकेटिंग करने के बजाये, आप _उनको लिफ्ट करके_, उनके कॉमन शेयर्ड पैरेंट तक ले जायेंगे और उन्हें उनके जरूरतमंद चिल्ड्रेन *तक पास* कर देंगे।
306306
307-
आपका एप्प आपके काम करते करते बदलता जायेगा। State के हर हिस्से को उसकी "रहने" की सही जगह पहुंचाने तक, बार-बार state को अप या डाउन ले जाना सामान्य है। यह सब इस प्रक्रिया का हिस्सा है!
307+
आपका एप्प आपके काम करते करते बदलता जायेगा। State के हर हिस्से को उसकी "रहने" की सही जगह पहुंचाने तक, बार-बार state को अप या डाउन ले जाना सामान्य है। यह सब इस प्रोसेस का हिस्सा है!
308308
309309
यदि आप कुछ और कौम्पोनॅन्ट के साथ प्रैक्टिस करने का अनुभव लेना चाहते हैं, तो इसके लिए [React में सोचना](/learn/thinking-in-react) लेख पढ़ें।
310310
311311
<Recap>
312312
313-
* यदि आप दो कंपोनेंट्स के बीच तालमेल करना चाहते हैं, तब उनकी state को उनके कॉमन पैरेंट पर मूव करें।
313+
* यदि आप दो कौम्पोनॅन्ट्स के बीच तालमेल करना चाहते हैं, तब उनकी state को उनके कॉमन पैरेंट पर मूव करें।
314314
* फिर इनफार्मेशन को कॉमन पैरेंट में से props की मदद से पास करें।
315315
* अंत में event-handler को पास-डाउन करें जिस से चिल्ड्रेन अपने पैरेंट state बदल सकें।
316-
* Iबेहतर होगा यदि कंपोनेंट्स को "कंट्रोल्ड"(props द्वारा ड्रिवन) या "अन-कंट्रोल्ड" (state द्वारा ड्रिवन) मानें।
316+
* बेहतर होगा यदि कौम्पोनॅन्ट्स को "कंट्रोल्ड" (props द्वारा ड्रिवन) या "अन-कंट्रोल्ड" (state द्वारा ड्रिवन) मानें।
317317
318318
</Recap>
319319
320320
<Challenges>
321321
322322
### सिंक किये हुए इनपुट {/*synced-inputs*/}
323323
324-
ये दो इनपुट इंडिपेंडेंट हैं। इन्हें सिंक में रखने की कोशिश करें: एक इनपुट को एडिट करने पर दूसरा इनपुट उसकी टेक्स्ट से अपडेट होना चाहिए, और फिर vice versa
324+
ये दो इनपुट इंडिपेंडेंट हैं। इन्हें सिंक में रखने की कोशिश करें: एक इनपुट को एडिट करने पर दूसरा इनपुट उसकी टेक्स्ट से अपडेट होना चाहिए, और फिर वाईस वर्सा
325325
326326
<Hint>
327327
@@ -372,7 +372,7 @@ label { display: block; }
372372
373373
<Solution>
374374
375-
`text` state वेरिएबल को `handleChange` हैंडलरके साथ पैरेंट कौम्पोनॅन्ट में ले जाएँ। फिर उन्हें props की तरह दोनों इनपुट कौम्पोनॅन्ट में पास-डाउन करें। यह उन्हें सिंक में रखेगा।
375+
`text` state वेरिएबल को `handleChange` हैंडलर के साथ पैरेंट कौम्पोनॅन्ट में ले जाएँ। फिर उन्हें props की तरह दोनों इनपुट कौम्पोनॅन्ट में पास-डाउन करें। यह उन्हें सिंक में रखेगा।
376376
377377
<Sandpack>
378378
@@ -429,7 +429,7 @@ label { display: block; }
429429
430430
इस उदाहरण में, `SearchBar` की अपनी एक `query` state है, जो टेक्स्ट इनपुट को नियंत्रित करती है। इसका पैरेंट `FilterableList` कौम्पोनॅन्ट `List` ऑफ़ आइटम डिस्प्ले करता है, पर सर्च query को अकाउंट में नहीं लेता है।
431431
432-
`filterItems(foods, query)` फंक्शन की सहायता से लिस्ट को सर्च query के अनुसार फ़िल्टर करें।अपने changes को जांचने के लिए, "s" टाइप करके देखें की इनपुट फ़िल्टर लिस्ट में "Sushi", "Shish-Kabab" और "Dim-Sum" प्राप्त होते हैं।
432+
`filterItems(foods, query)` फंक्शन की सहायता से लिस्ट को सर्च query के अनुसार फ़िल्टर करें। अपने चैंजेस को जांचने के लिए, "s" टाइप करके देखें की इनपुट फ़िल्टर लिस्ट में "Sushi", "Shish kebab" और "Dim sum" प्राप्त होते हैं।
433433
434434
ध्यान दें कि `filterItems` पहले से ही इम्प्लेमेंट और इम्पोर्ट हो गया है, जिस से उसे आपको खुद लिखना न पड़े!
435435

0 commit comments

Comments
 (0)