Conditional Rendering
Ternary Operator
When you want to render A when a condition is true or B if the condition is false, you can use the ternary operator.
const App = () => {
const num = 1;
return (
<div>
<p>
The number is {num % 2 === 0 ? "even" : "odd"}
</p>
</div>
);
};In addition to primitive values like the strings "even" and "odd" above, you can also conditionally render JSX and React Components.
const LoginButton = () => {
return <button>Login</button>;
};
const LogoutButton = () => {
return <button>Logout</button>;
};
const App = () => {
const loggedIn = false
return (
<div>
{ loggedIn ? <LoginButton /> : <LogoutButton /> }
</div>
);
};Rendering Something Only When a Condition is true
trueSay you want to render the <WelcomeMessage /> component below only when a user is logged in. If they're not logged in, you don't want to render anything at all.
You can use null on the false side of the ternary operator
or use the Logical AND operator && and its short-circuit behaviour.
Primitive Types JSX Won't Render
nullundefinedBooleans (
trueandfalse)
Last updated
Was this helpful?