Understanding “return null” vs “return false” in React

Çağlayan Yanıkoğlu
Jotform Tech
Published in
3 min readApr 2, 2023

Hello everyone. This week in #SundayTechMusings, I will try to explain the difference between “return null” and “return false” in React.

This topic is actually related to performance. For some background on techniques for optimizing performance, check out my Performance Optimization Techniques on this topic.

React

A lot of people think “return null” and “return false” are the same. While they’re very similar, there are some differences related to how React works.

When developing with React, it’s common to use conditional rendering to display different components based on certain conditions. In some cases, you may want to explicitly indicate that a component should not render. This is where null and false come in. While both of these values prevent the rendering of a component, there are important differences between them.

Returning null

When a component returns null, it tells React not to render anything in the DOM for that component. This can be useful when you want to conditionally render a component based on a certain state, but don't want anything to be displayed when that state is not met. For example:

In the above example, if the name prop is not provided, the component returns null, which prevents the <h1> element from being rendered. If the name prop is provided, the component renders the <h1> element with the greeting. This is the classic way of doing this.

Returning false

When a component returns false, it tells React not to render anything in the DOM for that component, just like null. However, there is an important difference: returning false also prevents the component from updating in the future. This is because React interprets false as a signal to “unmount” the component, which means removing it from the DOM entirely.

Here’s an example of a component that returns false:

In this example, if the onClick prop is not provided, the component returns false, which prevents the <button> element from being rendered. If the onClick prop is provided, the component renders the <button> element with the specified click handler.

It’s important to note that returning false can have unintended consequences, such as preventing the component from updating when it should. For this reason, it’s generally safer to use null when you want to prevent rendering without affecting future updates.

Returning false from a component’s render method is only useful when the component doesn’t have any side effects, such as updating state or triggering API requests. If a component has side effects and returns false, those side effects will still happen, which can lead to unexpected behavior.

If you check the above code in the React library, you will see a “null” check. For a better understanding of how React works, check out this code.

To sum up

In summary, returning null and returning false both prevent a component from rendering anything in the DOM, but there are important differences between them. null is a simple way to conditionally render a component without affecting future updates, while false signals to React to unmount the component and can cause unintended consequences. It’s important to choose the right option for your specific use case.

For more on advanced React and JavaScript, check out my other posts and subscribe to email updates.

If you find this content helpful and would like to show your support, you can buy me a beer🍺😊
Buy Beer🍺

See you next week at #SundayTechMusings

Linkedin

Twitter (TR)

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

Published in Jotform Tech

Welcome to Jotform official tech blog. Read about software engineering and how Jotform engineers build the easiest form builder.

Written by Çağlayan Yanıkoğlu

Team Lead / Senior Frontend Developer @Jotform. Frontend Instructor/Consultant @patika.dev, @kodluyoruz. https://superpeer.com/caglayandev

Responses (7)

Write a response

Hi! Great article, but will the update of null component cause any performance issues?

3

I love reading your Sunday tech musings, yet again another really good article.

8

Recommended from Medium

Lists

See more recommendations