mirror of
https://github.com/reactjs/react.dev.git
synced 2026-02-23 20:23:08 +00:00
Add IIFE example to JSX documentation
This commit is contained in:
@@ -33,8 +33,7 @@ That's not valid JS. You probably want to make use of a ternary expression:
|
||||
React.render(<div id={condition ? 'msg' : ''}>Hello World!</div>, mountNode);
|
||||
```
|
||||
|
||||
If a ternary expression isn't robust enough, you can use `if` statements to determine which
|
||||
components should be used.
|
||||
If a ternary expression isn't robust enough, you can use `if` statements outside of your JSX to determine which components should be used:
|
||||
|
||||
```js
|
||||
var loginButton;
|
||||
@@ -49,7 +48,34 @@ return (
|
||||
<Home />
|
||||
{loginButton}
|
||||
</nav>
|
||||
)
|
||||
);
|
||||
```
|
||||
|
||||
Or if you prefer a more "inline" aesthetic, define [immediately-invoked function expressions](https://en.wikipedia.org/wiki/Immediately-invoked_function_expression) _inside_ your JSX:
|
||||
|
||||
```js
|
||||
return (
|
||||
<section>
|
||||
<h1>Color</h1>
|
||||
<h3>Name</h3>
|
||||
<p>{this.state.color || "white"}</p>
|
||||
<h3>Hex</h3>
|
||||
<p>
|
||||
{() => {
|
||||
switch (this.state.color) {
|
||||
case "red": return "#FF0000";
|
||||
case "green": return "#00FF00";
|
||||
case "blue": return "#0000FF";
|
||||
default: return "#FFFFFF";
|
||||
}
|
||||
}()}
|
||||
</p>
|
||||
</section>
|
||||
);
|
||||
```
|
||||
|
||||
> Note:
|
||||
>
|
||||
> In the example above, an ES6 [arrow function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions) is utilized to lexically bind the value of `this`.
|
||||
|
||||
Try using it today with the [JSX compiler](/react/jsx-compiler.html).
|
||||
|
||||
Reference in New Issue
Block a user