Size: a a a

2020 January 30

DE

Denis Efremov in JS Liberty
Кто тебя будет спрашивать?
источник

AO

Aidos Omurzakov in JS Liberty
Всем привет
кто нибудь может обьяснить конструкцию в реакте такого вида
{!this.state.offers && <Spinner />}
он работает так что если нету offers то он показывает спиннер
но я видел тлько такую конструкцию
{!this.state.offers ? <Spinner /> : null} (тернарным оператором)

это получается одно и тоже ? как это работает ?
источник

DE

Denis Efremov in JS Liberty
Аркаша Одесский 🇪🇪
У меня повышенный болевой порог
Это вдвойне интереснее
источник

DE

Denis Efremov in JS Liberty
Ну это не в реакте, а в JS
источник

DE

Denis Efremov in JS Liberty
Aidos Omurzakov
Всем привет
кто нибудь может обьяснить конструкцию в реакте такого вида
{!this.state.offers && <Spinner />}
он работает так что если нету offers то он показывает спиннер
но я видел тлько такую конструкцию
{!this.state.offers ? <Spinner /> : null} (тернарным оператором)

это получается одно и тоже ? как это работает ?
И не одно и то же
источник

AO

Aidos Omurzakov in JS Liberty
Denis Efremov
И не одно и то же
работает также как false && true  дают false  ?
источник

А

Аркаша Одесский 🇪🇪 in JS Liberty
Aidos Omurzakov
Всем привет
кто нибудь может обьяснить конструкцию в реакте такого вида
{!this.state.offers && <Spinner />}
он работает так что если нету offers то он показывает спиннер
но я видел тлько такую конструкцию
{!this.state.offers ? <Spinner /> : null} (тернарным оператором)

это получается одно и тоже ? как это работает ?
О крутая запись впервые вижу
источник

DE

Denis Efremov in JS Liberty
{!this.state.offers && <Spinner />}

{!this.state.offers ? <Spinner /> : undefined}

Это вот одно и то же
источник

А

Аркаша Одесский 🇪🇪 in JS Liberty
Правда Денис скажет что не надо так делать)
источник

AO

Aidos Omurzakov in JS Liberty
Denis Efremov
{!this.state.offers && <Spinner />}

{!this.state.offers ? <Spinner /> : undefined}

Это вот одно и то же
лол а я и не знал
спасибо
источник

DE

Denis Efremov in JS Liberty
&& — И
источник

DE

Denis Efremov in JS Liberty
Пропустит, если предыдущее тру
источник

AO

Aidos Omurzakov in JS Liberty
Denis Efremov
Пропустит, если предыдущее тру
капец
а я думал типо оператор И строго смотрит , если значения по обе стороны не дают оба true то он дает false
источник

AO

Aidos Omurzakov in JS Liberty
типо
true && false => false
false && true => false
true && true => true
источник

DE

Denis Efremov in JS Liberty
true && 5 => 5
false && 5 => false
источник

DE

Denis Efremov in JS Liberty
true || 5 => true
false || 5 => 5
источник

А

Аркаша Одесский 🇪🇪 in JS Liberty
источник

AO

Aidos Omurzakov in JS Liberty
Denis Efremov
true || 5 => true
false || 5 => 5
надо про логические операторы снова почитать
источник

B

Baxxter in JS Liberty
просто jsx не отрисовывает falsy выражения
источник

AO

Aidos Omurzakov in JS Liberty
Denis Efremov
true && 5 => 5
false && 5 => false
здесь вернул 5
из описания : Возвращает значение expr1, если оно может быть преобразовано в false; иначе возвращает значение expr2. Таким образом, при использовании с величинами типа Boolean оператор && вернет true, если оба операнда могут быть преобразованы в true; иначе оператор && вернет false.

он смотрите может ли первое выражение в false преоброзовать , не может поэтому и возвращает 2ое выражение тоесть 5 ?
источник