Discover how one simple symbol can make your React code cleaner and your UI smarter!
Why Ternary operator usage in React? - Purpose & Use Cases
Imagine you want to show a message in your React app that changes based on a condition, like whether a user is logged in or not. You write multiple lines of code with if-else statements everywhere in your JSX.
Using many if-else blocks inside JSX makes your code bulky and hard to read. It's easy to make mistakes and hard to quickly see what will be shown on the screen.
The ternary operator lets you write simple conditional expressions inline, making your JSX cleaner and easier to understand. It shows one thing if a condition is true, and another if false, all in one line.
if (isLoggedIn) { return <p>Welcome back!</p>; } else { return <p>Please log in.</p>; }
return <p>{isLoggedIn ? 'Welcome back!' : 'Please log in.'}</p>;
You can quickly and clearly decide what to show in your UI based on conditions, making your React components simpler and more readable.
Showing a "Loading..." message while data is being fetched, and then showing the actual content once it's ready, all with a neat inline condition.
Ternary operator simplifies conditional rendering in React.
Makes JSX cleaner and easier to read.
Helps avoid bulky if-else blocks inside components.
Practice
condition ? expr1 : expr2 do in React JSX?Solution
Step 1: Understand ternary operator structure
The ternary operator has the formcondition ? expr1 : expr2, which means it evaluates the condition first.Step 2: Evaluate the condition result
If the condition is true, it returnsexpr1; if false, it returnsexpr2.Final Answer:
It choosesexpr1ifconditionis true, otherwiseexpr2. -> Option AQuick Check:
Ternary operator = choose between two values [OK]
- Thinking it runs both expressions
- Confusing with logical AND/OR operators
- Using it outside JSX incorrectly
"Yes" if isActive is true, else "No"?Solution
Step 1: Check ternary operator syntax in JSX
The ternary operator must be inside curly braces in JSX and followcondition ? expr1 : expr2format.Step 2: Validate each option
{isActive ? "Yes" : "No"}correctly uses{isActive ? "Yes" : "No"}. Options B, C, and D have syntax errors or incomplete expressions.Final Answer:
{isActive ? "Yes" : "No"} -> Option BQuick Check:
Correct JSX ternary syntax ={isActive ? "Yes" : "No"}[OK]
- Missing colon ':' in ternary
- Using semicolon instead of colon
- Not wrapping expression in curly braces
function Greeting({ isLoggedIn }) {
return (
<div>
{isLoggedIn ? <h1>Welcome back!</h1> : <h1>Please sign in.</h1>}
</div>
);
}If
isLoggedIn is false?Solution
Step 1: Understand the ternary condition
The component usesisLoggedIn ? <h1>Welcome back!</h1> : <h1>Please sign in.</h1>. IfisLoggedInis false, it chooses the second expression.Step 2: Determine output when
SinceisLoggedInis falseisLoggedInis false, it renders<h1>Please sign in.</h1>inside the div.Final Answer:
<div><h1>Please sign in.</h1></div> -> Option AQuick Check:
False condition shows second expression [OK]
- Choosing first expression for false condition
- Confusing JSX tags rendering
- Expecting empty div output
return (
<div>
{isReady ? <p>Ready</p> : <p>Not ready</p>}
{isReady ? <p>Go!</p> : null}
</div>
);Solution
Step 1: Check each ternary usage
The first ternary is correct with both true and false parts. The second uses{isReady ? <p>Go!</p> : null}which is valid syntax.Step 2: Understand ternary operator requirements
The ternary operator requires both true and false expressions separated by a colon. Here, the else part isnull, which is valid JSX.Final Answer:
No error; code is valid. -> Option DQuick Check:
Ternary needs both ? and : parts, and else can be null [OK]
- Omitting the else expression
- Confusing ternary with logical AND
- Thinking JSX can't have ternary
const users = [
{ name: "Alice", online: true },
{ name: "Bob", online: false }
];
function UserList() {
return (
<ul>
{users.map(user => (
<li key={user.name}>
{user.name} - {user.online ? "Online" : "Offline"}
</li>
))}
</ul>
);
}Solution
Step 1: Analyze the map and ternary usage
The code maps over users and uses a ternary to show "Online" ifuser.onlineis true, else "Offline".Step 2: Check React key and JSX correctness
Each<li>has a unique key fromuser.name, and the ternary is correctly inside JSX curly braces.Final Answer:
Correctly shows each user with "Online" or "Offline" label. -> Option CQuick Check:
Map + ternary inside JSX = correct rendering [OK]
- Forgetting unique key in list items
- Trying to use ternary outside JSX braces
- Assuming ternary can't be used in map
Ready to prove it?
Pass the test and this pattern moves unknown
