Сокращенные условия в JSX


Как вы уже знаете, внутри фигурных скобок можно выполнять JavaScript код. На самом деле этот код может быть не любым, а только самым простым.

В частности, условия if там применять нельзя. Взамен следует пользоваться сокращенными вариантами условий. Давайте разберемся с ними.

Тернарный оператор
Давайте в зависимости от значения константы show выведем один или другой текст. Используем для этого тернарный оператор:

function App() {
const show = true;

return <div>
{show ? 'text1' : 'text2'}
</div>;
}
Можно работать не только с текстами, но и с тегами:

function App() {
const show = true;

return <div>
{show ? <p>text1</p> : <p>text2</p>}
</div>;
}

Оператор &&
Нам может понадобится выполнить вставку текста, если условие истинно, и ничего не делать, если ложно. Это делается с помощью оператора &&.

Давайте посмотрим его работу на примере. В следующем коде, если в show будет true, то вставиться абзац с текстом, а если будет false, то ничего не вставится:

function App() {
const show = true;

return <div>
{show && <p>text</p>}
</div>;
}

Инвертирование
Может быть и обратная ситуация: нужно выполнить вставку текста, если условие ложно, и ничего не делать, если истинно. Для этого нужно выполнить инвертирования константы с помощью оператора !.

В следующем примере, если в hide будет false, то вставиться абзац с текстом:

function App() {
const hide = false;

return <div>
{!hide && <p>text</p>}
</div>;
}