Size: a a a

2020 June 16

AR

Alexey Raspopov in React Kyiv
Вроде бы Артем
Чем это грозит?
потому что левая часть может оказаться не булевым значением и реакт покажет 0, например
источник

RD

Rostyk Doskochynskiy in React Kyiv
Alexey Raspopov
потому что левая часть может оказаться не булевым значением и реакт покажет 0, например
ххах..краще юзати &&
а щоб ліва частина завжди була boolean треба привести її до boollean

!!0 - false
!0 - true
источник

AR

Alexey Raspopov in React Kyiv
нет, лучше использовать тернарный оператор и всегда явно писать альтернативный вариант, даже если он null
источник

RD

Rostyk Doskochynskiy in React Kyiv
можеш мені обгрунтувати ?
источник

RD

Rostyk Doskochynskiy in React Kyiv
чому так
источник

RD

Rostyk Doskochynskiy in React Kyiv
а якщо в тебе умова буде складатися з двох виразів....?
і один з них не буде підходити

condition ? ... : тут
источник

RD

Rostyk Doskochynskiy in React Kyiv
то прийдеться писати кілометрові тернарки
источник

RD

Rostyk Doskochynskiy in React Kyiv
condition ? ... : .... ? dsda : 1edsada
источник

AR

Alexey Raspopov in React Kyiv
я не предлагаю вложенные тернарки делать
источник

RD

Rostyk Doskochynskiy in React Kyiv
ну якщо буде більше ніж одна умова то буде всерівно випадок коли одна з них може не підходити тому всерівно прийдеться переписувати
источник

AR

Alexey Raspopov in React Kyiv
мы говорим про конкретный случай “показать контент по условию”
источник

DB

Dima Bildin in React Kyiv
Rostyk Doskochynskiy
condition ? ... : .... ? dsda : 1edsada
Это пример на && и || будет выглядеть хуже, чем вложенная тернарка)
источник

RD

Rostyk Doskochynskiy in React Kyiv
Dima Bildin
Это пример на && и || будет выглядеть хуже, чем вложенная тернарка)
ну взагалі то не так треба переписати..
і логічні оператори не варто міксувати..eslint буде сваритись
источник

AR

Alexey Raspopov in React Kyiv
тернарка это тоже логический оператор)
источник

DB

Dima Bildin in React Kyiv
Rostyk Doskochynskiy
ну взагалі то не так треба переписати..
і логічні оператори не варто міксувати..eslint буде сваритись
Ты сказал, что надо использовать && вместо тернарки, потом привёл в аргумент вложенное условие)
источник

RD

Rostyk Doskochynskiy in React Kyiv
я сказав що краще це використовувати і пояснив чому
источник

RD

Rostyk Doskochynskiy in React Kyiv
можу привести приклад
источник

RD

Rostyk Doskochynskiy in React Kyiv
const fetching = true;
const data = false;
const showData = true;

{
 !!fetching ? <Loader /> : <List data={data} />
}

тут буде показуватись data не в тому випадку коли вона доступна, а коли fetching буде false. Тобто ми привязуєм дані не до перевірки чи вона є, а до fetching який по суті не має до неї відношення
тому нам потрібно ще перевіряти в тій тернарці чи вона є..бо вона на mount буде undefined або null або що не будь пусте.
Прийдеться тоді переписувати так:

{
 fetching ? <Loader /> : showData && !!Object.values(data).length ? <List data={data} /> : null
}

і це тільки дві умови. а може бути більше

Тому краще писати так щоб кожна вюшка мала свою особисту  умову.

{
 fetching && <Loader />;
}

{
 showData && !!Object.values(data).length && <List data={data} />;
}

<Loader /> рендериться тільки за своїх умов (fetching)

<List /> - тоже за своїми (showData, dataExist і тд)

нет, лучше использовать тернарный оператор и всегда явно писать альтернативный вариант, даже если он null

не обовязково тому що логічні оператори вертають ітак true/false в будь якому випадку
источник

RD

Rostyk Doskochynskiy in React Kyiv
источник

AR

Alexey Raspopov in React Kyiv
плохо, фу
источник