What do curly braces mean in JSX (React)?

For an example, to set a style in react you could do

var css = {color: red}

and

<h1 style={css}>Hello world</h1>

Why do you need the curly braces around css in the second code snippet?


Solution 1:

The curly braces are a special syntax to let the JSX parser know that it needs to interpret the contents in between them as JavaScript instead of a string.

You need them when you want to use a JavaScript expression like a variable or a reference inside JSX. Because if you use the standard double quote syntax like so:

var css = { color: red }

<h1 style="css">Hello world</h1>

JSX doesn't know you meant to use the variable css in the style attribute instead of the string. And by placing the curly braces around the variable css, you are telling the parser "take the contents of the variable css and put them here". (Technically its evaluating the content)

This process is generally referred to as "interpolation".

Solution 2:

If you don't use the variable css, the JSX could look like this:

<h1 style={ {color: 'red'} }>Hello world</h1>

I guess you are confused about the double curly braces.

so you know that the curly braces in JSX means process the inner value in JavaScript, so the outer braces is used exactly for this purpose.

But the style property accepts an object. And an object also needs another pair of curly braces to wrap it up. That's the purpose for the inner ones.

Solution 3:

The outer curly braces tell the JSX parser that the syntax should be interpreted as javascript. The inner braces are used because the style variable accepts an object.

let's break this down:

<h1 style={interpret javascritp {interpret the object} }> hello </h1>

Solution 4:

You put curly braces when you want to use the value of a variable inside "html" (so inside the render part). It's just a way of telling the app to take the value of the variable and put it there, as opposed to a word.