Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Condition rendering fixed updated final #43

Closed
wants to merge 28 commits into from
Closed
Changes from 15 commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
c23f91e
Update conditional-rendering.md
kambleaa007 Jul 9, 2019
0b28fae
Update conditional-rendering.md
kambleaa007 Jul 9, 2019
e380d3d
Update conditional-rendering.md
kambleaa007 Jul 9, 2019
d4dc9bd
done all suggested modifications
kambleaa007 Jul 15, 2019
e972427
Merge branch 'master' into conditionRendering
kambleaa007 Jul 15, 2019
00f2f2d
Update conditional-rendering.md
kambleaa007 Jul 15, 2019
497fdea
done with all suggestions
kambleaa007 Jul 15, 2019
8484f2f
Update conditional-rendering.md
kambleaa007 Jul 15, 2019
03a0074
done with suggested modification
kambleaa007 Jul 15, 2019
3c56345
Merge branch 'master' into conditionRendering
arshadkazmi42 Jul 16, 2019
5e6b1e1
done with review one modifications
kambleaa007 Jul 16, 2019
c32218e
Done with all reaming changes
kambleaa007 Jul 17, 2019
481497d
fixed
kambleaa007 Jul 17, 2019
f314253
fixed `रहै`
kambleaa007 Jul 17, 2019
07be650
done है
kambleaa007 Jul 18, 2019
6110e35
Merge branch 'master' into conditionRendering
saranshkataria Jul 22, 2019
01a245c
Update conditional-rendering.md
kambleaa007 Jul 24, 2019
4775ef3
Update conditional-rendering.md
kambleaa007 Jul 24, 2019
24c2f77
Merge branch 'master' into conditionRendering
saranshkataria Jul 24, 2019
69c5b66
Update conditional-rendering.md
kambleaa007 Jul 25, 2019
04af059
Update conditional-rendering.md
kambleaa007 Aug 1, 2019
909242d
Merge branch 'master' into conditionRendering
saranshkataria Aug 1, 2019
aacb2e9
Merge branch 'master' into conditionRendering
arshadkazmi42 Oct 3, 2019
952fe96
Merge branch 'master' into conditionRendering
kambleaa007 Oct 9, 2019
3a12901
Done with the New changes
kambleaa007 Oct 24, 2019
71b6254
Merge branch 'master' into conditionRendering
saranshkataria Oct 26, 2019
0e37f81
Done with Hindi Changes for <h1> tag
kambleaa007 Nov 6, 2019
19132f8
Merge branch 'master' into conditionRendering
arshadkazmi42 Jan 24, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 25 additions & 24 deletions content/docs/conditional-rendering.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,11 @@ redirect_from:
- "tips/false-in-jsx.html"
---

In React, you can create distinct components that encapsulate behavior you need. Then, you can render only some of them, depending on the state of your application.
React में, आप अलग-अलग कौम्पोनॅन्ट बना सकते हैं जो आपके लिए आवश्यक व्यवहार को संक्षिप्त करते हैं। फिर, आप अपने ऍप की स्टेट के आधार पर उनमें से कुछ को ही रिप्रेजेंट कर सकते हैं।
saranshkataria marked this conversation as resolved.
Show resolved Hide resolved

Conditional rendering in React works the same way conditions work in JavaScript. Use JavaScript operators like [`if`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/if...else) or the [conditional operator](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Conditional_Operator) to create elements representing the current state, and let React update the UI to match them.
कंडीशनल रेंडरिंग React में वैसे ही काम करता है जैसे कंडीशंस जावास्क्रिप्ट में करते है। जावास्क्रिप्ट ऑपरेटर्स जैसे [`if`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/if...else) और [`कंडीशनल ऑपरेटर्स `](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Conditional_Operator) जो एलिमेंट्स बनके करंट स्टेट को रिप्रेजेंट करते है। फिर React UI को अपडेट करके मैच कर देगा।
saranshkataria marked this conversation as resolved.
Show resolved Hide resolved

Consider these two components:
उदाहरण के तौर पे यह दो कौम्पोनॅन्ट देखो:
saranshkataria marked this conversation as resolved.
Show resolved Hide resolved

```js
function UserGreeting(props) {
saranshkataria marked this conversation as resolved.
Show resolved Hide resolved
Expand All @@ -24,7 +24,7 @@ function GuestGreeting(props) {
}
```

We'll create a `Greeting` component that displays either of these components depending on whether a user is logged in:
हम `Greeting` कौम्पोनॅन्ट बना रहे है। अगर यूजर लॉगिन है तभी देखेगा:
saranshkataria marked this conversation as resolved.
Show resolved Hide resolved

```javascript{3-7,11,12}
function Greeting(props) {
Expand All @@ -44,13 +44,13 @@ ReactDOM.render(

[**Try it on CodePen**](https://codepen.io/gaearon/pen/ZpVxNq?editors=0011)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this needs to be translated too

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CodePen में कोशिश करो

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

इसे CodePen पर आज़माएँ makes more sense


This example renders a different greeting depending on the value of `isLoggedIn` prop.
यह उदहारण `isLoggedIn` प्रोप के वैल्यू के अनुसार अलग अलग ग्रीटिंग्स रेंडर करता है।

### Element Variables {#element-variables}
### एलिमेंट वेरिएबल {#element-variables}
saranshkataria marked this conversation as resolved.
Show resolved Hide resolved

You can use variables to store elements. This can help you conditionally render a part of the component while the rest of the output doesn't change.
आप एलिमेंट्स को स्टोर करने के लिए वेरिएबल्स का उसे कर सकते हो। जिससे आपको कंडीशनल रेंडरिंग में मदद होगी और बाकि का आउटपुट चेंज नहीं होगा।
saranshkataria marked this conversation as resolved.
Show resolved Hide resolved

Consider these two new components representing Logout and Login buttons:
अब लॉगिन और लॉगआउट बटन्स नए कौम्पोनॅन्टस को देखो :
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not the right translation

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

लॉगिन और लॉगआउट बटन्स के नए कौम्पोनॅन्टस पर विचार करें

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

लॉगआउट और लॉगिन बटन्स का प्रतिनिधित्व करने वाले इन दो नए कौम्पोनॅन्टस पर विचार करें:


```js
function LoginButton(props) {
Expand All @@ -70,9 +70,10 @@ function LogoutButton(props) {
}
```

In the example below, we will create a [stateful component](/docs/state-and-lifecycle.html#adding-local-state-to-a-class) called `LoginControl`.

It will render either `<LoginButton />` or `<LogoutButton />` depending on its current state. It will also render a `<Greeting />` from the previous example:
इस उदहारण में हम बना रहे है [स्टेटफुल कौम्पोनॅन्ट](/docs/state-and-lifecycle.html#adding-local-state-to-a-class) जिसे बोलते हैं `LoginControl`।

जो करंट स्टेट के हिसाब से `<LoginButton />` या `<LogoutButton />` को रेंडर करेगा। वो `<Greeting />` को भी रेंडर करेगा जैसे पिछले उदहारण में बताया था:

```javascript{20-25,29,30}
class LoginControl extends React.Component {
Expand Down Expand Up @@ -118,11 +119,11 @@ ReactDOM.render(

[**Try it on CodePen**](https://codepen.io/gaearon/pen/QKzAgB?editors=0010)

While declaring a variable and using an `if` statement is a fine way to conditionally render a component, sometimes you might want to use a shorter syntax. There are a few ways to inline conditions in JSX, explained below.
वेरिएबल डिक्लेअर करते वक्त, `if` स्टेटमेंट से कौम्पोनॅन्ट को कण्डीशनली रेंडर करना सही तरीका है, कभी आपको छोटा शार्ट सिंटेक्स उसे करना पड़ सकता है। यहाँ नीचे, JSX में इन लाइन कंडीशंस के कुछ पर्याय दिए गए हैं।

### Inline If with Logical && Operator {#inline-if-with-logical--operator}
### लॉजिकल && ऑपरेटर के साथ इन लाइन `if` का इस्तेमाल {#inline-if-with-logical--operator}

You may [embed any expressions in JSX](/docs/introducing-jsx.html#embedding-expressions-in-jsx) by wrapping them in curly braces. This includes the JavaScript logical `&&` operator. It can be handy for conditionally including an element:
आप [किसी भी एक्सप्रेशन को `jsx`](/docs/introducing-jsx.html#embedding-expressions-in-jsx) में कर्ली ब्रेसेस इस्तेमाल करके ड़ाल सकते हैं। इसमें जावास्क्रिप्ट का लॉजिकल `&&` ऑपरेटर भी शामिल है। इसकी मदद से हम किसी भी एलिमेंट को कंडीशंस से इन्क्लूड कर सकते है:

```js{6-10}
function Mailbox(props) {
Expand All @@ -148,15 +149,15 @@ ReactDOM.render(

[**Try it on CodePen**](https://codepen.io/gaearon/pen/ozJddz?editors=0010)

It works because in JavaScript, `true && expression` always evaluates to `expression`, and `false && expression` always evaluates to `false`.
जैवसक्रिप्ट मे यह काम करता है क्यूंकि, `true && expression` हमेशा `expression` बन जाता है, और `false && expression` हमेशा `false` बन जाता है।

Therefore, if the condition is `true`, the element right after `&&` will appear in the output. If it is `false`, React will ignore and skip it.
इसीलिए, अगर कोई कंडीशन `true` है, तोह `&&` के आगे का एलिमेंट आउटपुट में आ जाता है। अगर यह `false` है, फिर React इसको रेंडर नहीं करता है।

### Inline If-Else with Conditional Operator {#inline-if-else-with-conditional-operator}
### कंडीशनल ऑपरेटर्स के साथ इन लाइन If-Else {#inline-if-else-with-conditional-operator}

Another method for conditionally rendering elements inline is to use the JavaScript conditional operator [`condition ? true : false`](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Conditional_Operator).
जावास्क्रिप्ट कंडीशनल ऑपरेटर [`condition ? true : false`](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Conditional_Operator) इस्तेमाल करके एलिमेंट्स को इन लाइन में कण्डीशनली रेंडर भी कर सकते हैं।

In the example below, we use it to conditionally render a small block of text.
जैसे नीचे के उदहारण में, छोटे टेक्स्ट ब्लॉक को इसे इस्तेमाल करके कण्डीशनली रेंडर किया है।

```javascript{5}
render() {
Expand All @@ -169,7 +170,7 @@ render() {
}
```

It can also be used for larger expressions although it is less obvious what's going on:
इसे हम बड़े एक्सप्रेशन्स के साथ भी उसे कर सकते है हालांकि यह जानना कम स्पष्ट है कि क्या हो रहा है:

```js{5,7,9}
render() {
Expand All @@ -186,13 +187,13 @@ render() {
}
```

Just like in JavaScript, it is up to you to choose an appropriate style based on what you and your team consider more readable. Also remember that whenever conditions become too complex, it might be a good time to [extract a component](/docs/components-and-props.html#extracting-components).
जैसे की जावास्क्रिप्ट में होता है, यह हम पे निर्भर करता है की कोनसा स्टाइल इस्तेमाल करें जिससे आप और आपकी टीम को समझना आसान हो। यह भी याद रहना की जैसे कंडीशंस बड़ी और पेचीदा हो, तब कौम्पोनॅन्ट को एक्सट्रेक्ट करना अच्छा रहता है [कौम्पोनॅन्ट एक्सट्रेक्ट करना](/docs/components-and-props.html#extracting-components)

### Preventing Component from Rendering {#preventing-component-from-rendering}
### कौम्पोनॅन्ट को रेंडर होने से रोकें {#preventing-component-from-rendering}

In rare cases you might want a component to hide itself even though it was rendered by another component. To do this return `null` instead of its render output.
कुछ केसेस में कौम्पोनॅन्ट को छिपाना पड़ता है जब की वह किसी दूसरे कौम्पोनॅन्ट में रेंडर हो रहे हो। तब हमको आउटपुट को रेंडर करने के बजाये `null` रीटर्न करना है।

In the example below, the `<WarningBanner />` is rendered depending on the value of the prop called `warn`. If the value of the prop is `false`, then the component does not render:
जैसे नीचे के उदहारण में, `<WarningBanner />` यह कौम्पोनॅन्ट `warn` प्रोप के वैल्यू के अनुसार रेंडर हुआ है। अगर इसकी वैल्यू `false` रहती तो कौम्पोनॅन्ट रेंडर नहीं होता:

```javascript{2-4,29}
function WarningBanner(props) {
Expand Down Expand Up @@ -240,4 +241,4 @@ ReactDOM.render(

[**Try it on CodePen**](https://codepen.io/gaearon/pen/Xjoqwm?editors=0010)

Returning `null` from a component's `render` method does not affect the firing of the component's lifecycle methods. For instance `componentDidUpdate` will still be called.
कौम्पोनॅन्ट के `रेंडर` से `null` रीटर्न करने का कौम्पोनॅन्ट के लाइफ साइकिल मेथड्स पर कोई असर नहीं पड़ता। जैसे की `componentDidUpdate` फिर भी कॉल होगा।