bugl
bugl
HomeLearnPatternsPathsSearch
HomeLearnPatternsPathsSearch

Loading lesson path

Learn/React/React Core
React•React Core

React Conditional Rendering

Flash cards

Review the key moves

1/4
Core idea

What is the main idea behind React Conditional Rendering?

Lesson checks

Practice each idea before moving on

Short Mimo-style checks built from this lesson's code, terms, and sequence.

1Quick choice

Which statement best captures the main point of this lesson?

2Fill blank

Complete the missing token from the example code.

___ MissedGoal() {
3Order

Put the learning moves in the order that makes the concept easiest to apply.

In React, you can conditionally render components.
Logical && Operator
React Conditional Rendering

In React, you can conditionally render components.

There are several ways to do this.

if Statement

We can use the if JavaScript operator to decide which component to render.

We'll use these two components

function MissedGoal() {
 return <h1>MISSED!</h1>;
}
function MadeGoal() {
 return <h1>Goal!</h1>;
}

Example

Now, we'll create another component that chooses which component to render based on a condition:

function Goal(props) {
 const isGoal = props.isGoal;
 if (isGoal) {
 return <MadeGoal/>;
 }
 return <MissedGoal/>;
}
createRoot(document.getElementById('root')).render( <Goal isGoal={false} /> );

Try changing the isGoal attribute to true :

Example

createRoot(document.getElementById('root')).render( <Goal isGoal={true} /> );

Logical && Operator

Another way to conditionally render a React component is by using the && operator.

In the example below, the heading will only be rendered if the props.brand property is not empty:

Example

The right side of && will only be rendered if the left side is true:

function Car(props) {
 return ( <> {props.brand && <h1>My car is a {props.brand}!</h1>}
 </> );
}
createRoot(document.getElementById('root')).render( <Car brand="Ford" /> );

If props.brand evaluates to true, the expression after && will render.

Example

createRoot(document.getElementById('root')).render( <Car /> );

Ternary Operator

Another way to conditionally render elements is by using a ternary operator.

condition ? true : false

We will go back to the goal example.

Example

Return the MadeGoal component if isGoal is true , otherwise return the MissedGoal component:

function Goal(props) {
 const isGoal = props.isGoal;
 return ( <> { isGoal ? <MadeGoal/> : <MissedGoal/> }
 </> );
}
createRoot(document.getElementById('root')).render( <Goal isGoal={false} /> );

To learn more, see the ternary operator section.

Previous

React Events

Next

React Lists