Using JavaScript Comments in JSX

You can place JavaScript comments anywhere in React/JSX you want except locations where JSX might expect a React child node. In this situation you'll have to escape the comment using { } so that JSX knows to pass that on as actual JavaScript.

Examine the code below, make sure you understand where you'll have to tell JSX to pass along a JS comment so a child React node is not created.

var reactNode = <div /*comment*/>{/* use {'{}'} here to comment*/}</div>;

In the above code if I had not wrapped the comment inside of the <div> with { } brackets then Babel would have converted the comment to a React text node. The outcome, unintentionally, without the { } would be:

var reactNode = React.createElement(
  "div",
  null,
  "/* use ",
  "{}",
  " here to comment*/"
);

Which would result in the following HTML that would have unintended text nodes.

<div data-reactid=".0">
    <span data-reactid=".0.0">/* use </span>
    <span data-reactid=".0.1">{}</span>
    <span data-reactid=".0.2"> here to comment*/</span>
</div>

results matching ""

    No results matching ""