Size: a a a

React — русскоговорящее сообщество

2021 March 05

VK

Vladimir Klimov in React — русскоговорящее сообщество
Adel Gilyazeev
Условие не расползается.... Особенно если нужны ветвления...
Аля вместо:
{b1 ? <C1/> :  b2 ? <C2/> : b3 ? <C3/> : null }
Лучше будет выглядеть
{(b1 && <C1/>) || (b2 && <C2/>)  || (b3 && <C3/>) }
Выглядеть будет лучше, но чем больше у вас неявного приведения - тем меньше надежность
Я скажу страшное, но мне кажется, что foo === null ? : лучше, чем foo ? :  :)
источник

AG

Adel Gilyazeev in React — русскоговорящее сообщество
Drew Naumenko
+ , логичнее и понятние для чтения смотрится тернарник
когда работает форматтер он зачастую тернарник раскидывает на несколько строк добавляя отступы из за вложеноости тернарников в друг-друга
источник

KK

Kateryna Kovtun in React — русскоговорящее сообщество
тогда так лучше?
источник

AG

Adel Gilyazeev in React — русскоговорящее сообщество
Вот пример из моего рабочего кода
{
         (expand === NExplorerEntityExpandType.dir && ListData &&
           <FixedSizeList outerRef={ref}
             itemCount={ListData.length}
             height={height - 2}
             width={width - 2}
             itemSize={32}
             itemData={ListData}
           >
             {Item}
           </FixedSizeList>)
         || (opend?.type === NExplorerEntityType.file_empty &&
           <Typography>Пустой файл</Typography>)
         || (expand === NExplorerEntityExpandType.txt && TxtData && opend!.encoding &&
           <MyMonacoEditor
             height={height - 2}
             width={width - 2} data={TxtData} encoding={opend!.encoding} />)
       }
источник

DN

Drew Naumenko in React — русскоговорящее сообщество
Adel Gilyazeev
когда работает форматтер он зачастую тернарник раскидывает на несколько строк добавляя отступы из за вложеноости тернарников в друг-друга
я их вообще привык с рендера выносить и тогда оно вообще

const some = data? data.map()... : null;

return(
 <div>{ some } </div>
)
источник

RS

Rustam Sahatov in React — русскоговорящее сообщество
Drew Naumenko
я их вообще привык с рендера выносить и тогда оно вообще

const some = data? data.map()... : null;

return(
 <div>{ some } </div>
)
зачем рендерить пустой див
источник

VK

Vladimir Klimov in React — русскоговорящее сообщество
Kateryna Kovtun
тогда так лучше?
Простите, что я вас запутал, но в этом случае разницы не будет на самом деле)

Потому, что вы в любом случае videoLink  и imageUrl неявно приводите к Boolean и надеетесь, что они будут false или true когда вы ожидаете)

Тогда хоть тернарник, хоть && разницы не даст)
источник

AG

Adel Gilyazeev in React — русскоговорящее сообщество
Drew Naumenko
я их вообще привык с рендера выносить и тогда оно вообще

const some = data? data.map()... : null;

return(
 <div>{ some } </div>
)
тогда они теряются из вида когда у тебя огромный компонент
источник

DN

Drew Naumenko in React — русскоговорящее сообщество
Rustam Sahatov
зачем рендерить пустой див
ну это пример был , ты возвращаеш какуето верстку не важно что ты там меппиш
источник

RS

Rustam Sahatov in React — русскоговорящее сообщество
Drew Naumenko
ну это пример был , ты возвращаеш какуето верстку не важно что ты там меппиш
Возвращать пустой див не окъ
источник

RS

Rustam Sahatov in React — русскоговорящее сообщество
это лишний мусор
источник

DN

Drew Naumenko in React — русскоговорящее сообщество
Rustam Sahatov
Возвращать пустой див не окъ
при чём тут пустой див , вопрос был про вынос тернарников с рендера
источник

RS

Rustam Sahatov in React — русскоговорящее сообщество
Drew Naumenko
при чём тут пустой див , вопрос был про вынос тернарников с рендера
я сужу по приведенному примеру
источник

AG

Adel Gilyazeev in React — русскоговорящее сообщество
Adel Gilyazeev
Вот пример из моего рабочего кода
{
         (expand === NExplorerEntityExpandType.dir && ListData &&
           <FixedSizeList outerRef={ref}
             itemCount={ListData.length}
             height={height - 2}
             width={width - 2}
             itemSize={32}
             itemData={ListData}
           >
             {Item}
           </FixedSizeList>)
         || (opend?.type === NExplorerEntityType.file_empty &&
           <Typography>Пустой файл</Typography>)
         || (expand === NExplorerEntityExpandType.txt && TxtData && opend!.encoding &&
           <MyMonacoEditor
             height={height - 2}
             width={width - 2} data={TxtData} encoding={opend!.encoding} />)
       }
{expand === NExplorerEntityExpandType.dir && ListData ? (
           <FixedSizeList
             outerRef={ref}
             itemCount={ListData.length}
             height={height - 2}
             width={width - 2}
             itemSize={32}
             itemData={ListData}>
             {Item}
           </FixedSizeList>
         ) : opend?.type === NExplorerEntityType.file_empty ? (
           <Typography>Пустой файл</Typography>
         ) : expand === NExplorerEntityExpandType.txt &&
           TxtData &&
           opend!.encoding ? (
           <MyMonacoEditor
             height={height - 2}
             width={width - 2}
             data={TxtData}
             encoding={opend!.encoding}
           />
         ) : null}

Вот с переписыванием в тернарники
источник

RS

Rustam Sahatov in React — русскоговорящее сообщество
Rustam Sahatov
я сужу по приведенному примеру
это раз
источник

RS

Rustam Sahatov in React — русскоговорящее сообщество
два: ты создаешь лишнюю переменную
источник

AG

Adel Gilyazeev in React — русскоговорящее сообщество
лан, Prettier могёт оказ в них... Прост Dart не могёт
источник

DN

Drew Naumenko in React — русскоговорящее сообщество
Rustam Sahatov
я сужу по приведенному примеру
оё всё не нужно плз
источник

RS

Rustam Sahatov in React — русскоговорящее сообщество
кек
источник

AG

Adel Gilyazeev in React — русскоговорящее сообщество
но в моём коде знак вопроса тернарника теряется
источник