Почему это равняется Истине и, таким образом, делает Div в React? - PullRequest
0 голосов
/ 28 апреля 2018

Я немного сбит с толку, почему это будет отображаться, когда errors.email не является ложным значением. JSX игнорируется и смотрит только на errors.email с правой стороны, поэтому в основном это выражение if (errors.email && errors.email)?

Просто немного странно. Я никогда не видел этого раньше.

{ errors.email && ( <div className="invalid-feedback">{errors.email}</div> ) }

1 Ответ

0 голосов
/ 28 апреля 2018

В отличие от некоторых других языков, && и || не обязательно приводят к true или false; вместо этого они принимают значение одного из своих операндов.

В случае &&:

  • Если errors.email равно ложь , результатом выражения && будет значение errors.email (и правая часть никогда не вычисляется).

  • Если errors.email равно истинно , то вычисляется правая часть и (ссылка на) объект, созданный им, становится результатом выражения &&.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...