diff --git a/beta/src/pages/learn/sharing-state-between-components.md b/beta/src/pages/learn/sharing-state-between-components.md
index 6a0d1c420..322600323 100644
--- a/beta/src/pages/learn/sharing-state-between-components.md
+++ b/beta/src/pages/learn/sharing-state-between-components.md
@@ -1,31 +1,31 @@
---
-title: Sharing State Between Components
+title: कौम्पोनॅन्ट्स के बीच state शेयरिंग
---
-Sometimes, you want the state of two components to always change together. To do it, remove state from both of them, move it to their closest common parent, and then pass it down to them via props. This is known as *lifting state up,* and it's one of the most common things you will do writing React code.
+कभी-कभी आप चाहेंगे की दो कौम्पोनॅन्ट्स की state हमेशा एक साथ बदले। ऐसा करने के लिए पहले उन दोनों में से state को निकल दें, फिर उन्हें मूव कर के उनके निकटतम कॉमन पैरेंट के पास ले जाएँ, और फिर props के माध्यम से उनमें पास कर दें। इसे _"लिफ्टिंग state अप"_ कहा जाता है, और React कोड लिखे जाते समय, किया जाने वाला यह सबसे कॉमन तरीका है।
-- How to share state between components by lifting it up
-- What are controlled and uncontrolled components
+- लिफ्टिंग के द्वारा कौम्पोनॅन्ट्स के बीच state कैसे शेयर की जाये
+- कंट्रोल्ड और अन-कंट्रोल्ड कौम्पोनॅन्ट्स क्या होते हैं
-## Lifting state up by example {/*lifting-state-up-by-example*/}
+## लिफ्टिंग state अप, उदाहरण के माध्यम से {/*lifting-state-up-by-example*/}
-In this example, a parent `Accordion` component renders two separate `Panel`s:
+इस उदाहरण में एक पैरेंट `Accordion` कौम्पोनॅन्ट दो विभिन्न `Panel`s को रेंडर करता है:
* `Accordion`
- `Panel`
- `Panel`
-Each `Panel` component has a boolean `isActive` state that determines whether its content is visible.
+प्रत्येक `Panel` कौम्पोनॅन्ट में एक boolean `isActive` state है जो ये निर्धारित करती है कि कौन स कंटेंट दिखाई देगा।
-Press the Show button for both panels:
+दोनों पैनल्स के Show बटन को दबाएँ:
@@ -53,10 +53,10 @@ export default function Accordion() {
<>
Almaty, Kazakhstan
- With a population of about 2 million, Almaty is Kazakhstan's largest city. From 1929 to 1997, it was its capital city.
+ 20 लाख की आबादी के साथ, अलमाती कज़ख़िस्तान का सबसे बड़ा शहर है। 1929 से 1997 तक, वह उसकी राजधानी थी।
- The name comes from алма, the Kazakh word for "apple" and is often translated as "full of apples". In fact, the region surrounding Almaty is thought to be the ancestral home of the apple, and the wild Malus sieversii is considered a likely candidate for the ancestor of the modern domestic apple.
+ यह नाम алма से आता है, जो "सेब" का कज़ाख शब्द है और अक्सर "सेब से भरपूर" में अनुवाद करता है। असल में, अलमाती के आस पास के क्षेत्र को सेब का पैतृक घर माना जाता है, और जंगली Malus sieversii को सेब के पूर्वज होने का संभावित उम्मीदवार माना जाता है।
>
);
@@ -73,59 +73,59 @@ h3, p { margin: 5px 0px; }
-Notice how pressing one panel's button does not affect the other panel--they are independent.
+गौर कीजिये किस तरह एक पैनल का बटन दबाना दूसरे पैनल को प्रभावित नहीं करता--दोनों स्वतंत्र हैं।
-
+
-Initially, each `Panel`'s `isActive` state is `false`, so they both appear collapsed
+शुरुआत में दोनों `Panel`s की `isActive` state `false` है, इसलिए दोनों कोलैप्स्ड दिख रहे हैं
-
+
-Clicking either `Panel`'s button will only update that `Panel`'s `isActive` state alone
+किसी भी `Panel` की `isActive` state तभी अपडेट होगी जब उस `Panel` का बटन दबाया जायेगा
-**But now let's say you want to change it so that only one panel is expanded at any given time.** With that design, expanding the second panel should collapse the first one. How would you do that?
+**मान लीजिये यदि आप बदलाव के तौर पर चाहते हैं कि एक समय में सिर्फ एक ही पैनल एक्सपैंड हो।** इस डिजाईन के मुताबिक़ एक पैनल के एक्सपैंड होने पर दूसरा कोलैप्स होना चाहिये। तो ये कैसे कर पाएंगे?
-To coordinate these two panels, you need to "lift their state up" to a parent component in three steps:
+इन दोनों पेनल्स को संचालित करने के लिए, आपको तीन चरणों में इनके "state को लिफ्ट अप" करके इन्हें पैरेंट कौम्पोनॅन्ट में लाना होगा:
-1. **Remove** state from the child components.
-2. **Pass** hardcoded data from the common parent.
-3. **Add** state to the common parent and pass it down together with the event handlers.
+1. चाइल्ड कौम्पोनॅन्ट में से state को **हटाना**।
+2. कॉमन पैरेंट में से हार्ड कोड किया हुआ डाटा **पास** करना।
+3. कॉमन पैरेंट में state को फिर से **ऐड करके** उसे event-handler के साथ पास करना।
-This will allow the `Accordion` component to coordinate both `Panel`s and only expand one at a time.
+ऐसा करने से `Accordion` कौम्पोनॅन्ट दोनों `Panel`s को संचालित कर पायेगा और एक समय में उनमें से एक ही एक्सपैंड होगा।
-### Step 1: Remove state from the child components {/*step-1-remove-state-from-the-child-components*/}
+### स्टेप 1: चाइल्ड कौम्पोनॅन्ट में से state निकालना {/*step-1-remove-state-from-the-child-components*/}
-You will give control of the `Panel`'s `isActive` to its parent component. This means that the parent component will pass `isActive` to `Panel` as a prop instead. Start by **removing this line** from the `Panel` component:
+आप `Panel` के `isActive` का कण्ट्रोल उसके पैरेंट कौम्पोनॅन्ट को देंगे। इसका मतलब है कि पैरेंट कौम्पोनॅन्ट `isActive` को `Panel` तक एक prop की तरह पास करेगा। आप `Panel` कौम्पोनॅन्ट से **यह लाइन हटाने** से शुरुआत कर सकते हैं:
```js
const [isActive, setIsActive] = useState(false);
```
-And instead, add `isActive` to the `Panel`'s list of props:
+और इसके बजाये, `Panel` के props की लिस्ट में `isActive` को जोड़ दें:
```js
function Panel({ title, children, isActive }) {
```
-Now the `Panel`'s parent component can *control* `isActive` by [passing it down as a prop](/learn/passing-props-to-a-component). Conversely, the `Panel` component now has *no control* over the value of `isActive`--it's now up to the parent component!
+अब `Panel` का पैरेंट कौम्पोनॅन्ट `isActive` को [prop की तरह पास कर](/learn/passing-props-to-a-component) के *नियंत्रित* कर पायेगा। ठीक इसके विपरीत, अब `Panel` कौम्पोनॅन्ट के `isActive` की वैल्यू पर कोई *नियंत्रित नहीं* रह जायेगा--ये अब पैरेंट कौम्पोनॅन्ट पर निर्भर है!
-### Step 2: Pass hardcoded data from the common parent {/*step-2-pass-hardcoded-data-from-the-common-parent*/}
+### स्टेप 2: कॉमन पैरेंट कौम्पोनॅन्ट से हार्ड कोडेड डाटा को पास करना {/*step-2-pass-hardcoded-data-from-the-common-parent*/}
-To lift state up, you must locate the closest common parent component of *both* of the child components that you want to coordinate:
+अब state को लिफ्ट अप करने के लिए आपको उस निकटतम कॉमन पैरेंट कौम्पोनॅन्ट का पता लगाना है, जो उन *दोनों* चाइल्ड कौम्पोनॅन्ट का पैरेंट है जिन्हें आप संचालित करना चाहते हैं:
-* `Accordion` *(closest common parent)*
+* `Accordion` *(निकटतम कॉमन पैरेंट)*
- `Panel`
- `Panel`
-In this example, it's the `Accordion` component. Since it's above both panels and can control their props, it will become the "source of truth" for which panel is currently active. Make the `Accordion` component pass a hardcoded value of `isActive` (for example, `true`) to both panels:
+इस उदाहरण में, यह `Accordion` कौम्पोनॅन्ट है। चूँकि यह दोनों पेनल्स के उपर है और उनके props को कंट्रोल कर सकता है, इसलिए यह अब ये वर्तमान में एक्टिव पैनल के लिए एक "सोर्स ऑफ़ ट्रुथ" बन जायेगा। अब `Accordion` कौम्पोनॅन्ट से, दोनों पेनल्स की तरफ `isActive` की एक हार्ड कोडेड वैल्यू पास करवाएं (उदाहरण के लिए, `true`):
@@ -137,10 +137,10 @@ export default function Accordion() {
<>
Almaty, Kazakhstan
- With a population of about 2 million, Almaty is Kazakhstan's largest city. From 1929 to 1997, it was its capital city.
+ 20 लाख की आबादी के साथ, अलमाती कज़ख़िस्तान का सबसे बड़ा शहर है। 1929 से 1997 तक, वह उसकी राजधानी थी।
- The name comes from алма, the Kazakh word for "apple" and is often translated as "full of apples". In fact, the region surrounding Almaty is thought to be the ancestral home of the apple, and the wild Malus sieversii is considered a likely candidate for the ancestor of the modern domestic apple.
+ यह नाम алма से आता है, जो "सेब" का कज़ाख शब्द है और अक्सर "सेब से भरपूर" में अनुवाद करता है। असल में, अलमाती के आस पास के क्षेत्र को सेब का पैतृक घर माना जाता है, और जंगली Malus sieversii को सेब के पूर्वज होने का संभावित उम्मीदवार माना जाता है।
>
);
@@ -172,21 +172,21 @@ h3, p { margin: 5px 0px; }
-Try editing the hardcoded `isActive` values in the `Accordion` component and see the result on the screen.
+अब `Accordion` कौम्पोनॅन्ट के हार्ड कोडेड `isActive` वैल्यूज को एडिट करें और स्क्रीन पर उसका रिजल्ट देखें।
-### Step 3: Add state to the common parent {/*step-3-add-state-to-the-common-parent*/}
+### स्टेप 3 : कॉमन पैरेंट में state को ऐड करना {/*step-3-add-state-to-the-common-parent*/}
-Lifting state up often changes the nature of what you're storing as state.
+State को लिफ्ट अप करते समय, कई बार उस state में हम क्या स्टोर कर रहे हैं, उसका नेचर बदल सकता है।
-In this case, only one panel should be active at a time. This means that the `Accordion` common parent component needs to keep track of *which* panel is the active one. Instead of a `boolean` value, it could use a number as the index of the active `Panel` for the state variable:
+ऐसे में एक समय पर सिर्फ एक ही पैनल एक्टिव रहना चाहिए। इसका मतलब है की `Accordion` कॉमन पैरेंट कौम्पोनॅन्ट को यह ट्रैक करते रहना होगा की *कौन सा* पैनल एक्टिव है। `boolean` वैल्यू के बजाये , वो state वेरिएबल के लिए, एक नंबर को एक्टिव `Panel` के इंडेक्स की तरह इस्तेमाल कर सकता है:
```js
const [activeIndex, setActiveIndex] = useState(0);
```
-When the `activeIndex` is `0`, the first panel is active, and when it's `1`, it's the second one.
+जब `activeIndex` `0` हो तो पहला पैनल एक्टिव है, और अगर ये `1` हो तो दूसरा।
-Clicking the "Show" button in either `Panel` needs to change the active index in `Accordion`. A `Panel` can't set the `activeIndex` state directly because it's defined inside the `Accordion`. The `Accordion` component needs to *explicitly allow* the `Panel` component to change its state by [passing an event handler down as a prop](/learn/responding-to-events#passing-event-handlers-as-props):
+किसी भी `Panel` में "Show" का बटन दबाने पर `Accordion` में active index बदल जाना चाहिए। एक `Panel` सीधे ही `activeIndex` state सेट नहीं कर सकता क्योंकि वह `Accordion` के अन्दर डिफाइन किया गया है। `Accordion` कौम्पोनॅन्ट को साफ तौर पर `Panel` कौम्पोनॅन्ट को अपनी state बदलने की *इजाज़त* देनी होगी, जिसके लिए उसे [event-handler को prop की तरह पास कराना होगा](/learn/responding-to-events#passing-event-handlers-as-props):
```js
<>
@@ -205,7 +205,7 @@ Clicking the "Show" button in either `Panel` needs to change the active index in
>
```
-The `