How to render function return empty in React Application

React is a component-based UI library that displays the webpage with several components.

Each component returns HTML output and is displayed on the webpage.

Sometimes, We need to display empty to return in Empty in Application.

How to return an empty jsx tag from render function in ReactJS

There are multiple ways we can return jsx empty or null from the render function.

One way, using empty tags or React fragments

an empty tag without children <></> can be returned from the return statement as seen below. Similarly, framgments <React.Fragment></React.Fragment> also returned from render function.

The advantage of this approach is it does not add any additional DOM nodes to the component.

Empty Tag in jsx example:

import React, { Component } from "react";

class ClassComponent extends Component {
  render() {
    return <></>;
  }
}

export default ClassComponent;

React. Fragment example:

import React, { Component } from "react";

class ClassComponent extends Component {
  render() {
    return <React.Fragment></React.Fragment>;
  }
}

export default ClassComponent;

these empty tags can be added to conditional expression or ternary operator to return empty content as given below example

render() {
        ( this.state.employee === undefined ) ?
            return <></>
        : return <span>employees found</span>;
    }

In another way, javascript values null, empty, undefined, true, and false are valid children in return statements.

It is not recommended to use these values with the following disadvantages

  • You have to use some of the values in DIV(<div>{undefined}</div>) and add additional nodes to render the component
  • These values are not worked in the typed language in typescript

Typescript react component render function to return empty

Typescript is a type of safety language, So Render function always returns ReactElement or JSXElementConstructor.

So, return values such as null, true, and false throw below the compilation error

Type 'true' is not assignable to type 'ReactElement<any, string | JSXElementConstructor>'.

Recommeded way is to retun empty jsx tags(<></>) or Fragments (<React.Fragment />)

Typescript class and functional components return fragments or empty jsx tags.

Here is an example typescript component to return empty jsx content.

import React, { Component } from "react";

class ClassComponent extends Component {
  render() {
    return <React.Fragment />;
  }
}

export default ClassComponent;

Conclusion

To summarize, It is always recommended way return the following In React javascript and typescript components.

  • Empty JSX tags(<></>)
  • React Fragments(<React.Fragment />)