Size: a a a

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

2020 November 20

AP

Anatoly Politsin in React — русскоговорящее сообщество
Stanislav
я бы не сказал что их желательно писать в тайпскрипте
спасибо
источник

S

Stanislav in React — русскоговорящее сообщество
просто если вы во всем коде описываете пропсы тайпскриптом, то необходимость отпадает
источник

AP

Anatoly Politsin in React — русскоговорящее сообщество
Понял, спасибо =)
источник

NP

Nikita Polevoy in React — русскоговорящее сообщество
Привет! У меня тут дискуссия рискующая перерасти в спор с напарникам по проганию. Хотелось бы услышать экспертное мнение.
Есть необходимость реализовать всплывающее меню, которое то тут то там есть в проэкте.
Логично что нужно сделать единый компонент и передавать параметры меню (колбэки, название элементов и иконки) в качестве пропсов. И точка спора в том как это делать.
1. Передавать все в массиве
<OwerflowMenu
  params=[
     code: 'someCode', icon: 'someIcon', callback: () => {...},
     code: 'someCode2', icon: 'someIcon2', callback: () => {...},
 ]
 />
2. Передавать как параметры чайлдам
<OwerflowMenu>
   <MenuItem code="someCode" icon={someIcon}         callback={() => {...}}/>
<MenuItem code="someCode2" icon={someIcon2} callback={() => {...}}/>
</OwerflowMenu>
/>

Есть ли best practice под эту ситуацию?
источник

И

Иван in React — русскоговорящее сообщество
Nikita Polevoy
Привет! У меня тут дискуссия рискующая перерасти в спор с напарникам по проганию. Хотелось бы услышать экспертное мнение.
Есть необходимость реализовать всплывающее меню, которое то тут то там есть в проэкте.
Логично что нужно сделать единый компонент и передавать параметры меню (колбэки, название элементов и иконки) в качестве пропсов. И точка спора в том как это делать.
1. Передавать все в массиве
<OwerflowMenu
  params=[
     code: 'someCode', icon: 'someIcon', callback: () => {...},
     code: 'someCode2', icon: 'someIcon2', callback: () => {...},
 ]
 />
2. Передавать как параметры чайлдам
<OwerflowMenu>
   <MenuItem code="someCode" icon={someIcon}         callback={() => {...}}/>
<MenuItem code="someCode2" icon={someIcon2} callback={() => {...}}/>
</OwerflowMenu>
/>

Есть ли best practice под эту ситуацию?
Второй вариант лучше читается и воспринимается
источник

S

Stanislav in React — русскоговорящее сообщество
Nikita Polevoy
Привет! У меня тут дискуссия рискующая перерасти в спор с напарникам по проганию. Хотелось бы услышать экспертное мнение.
Есть необходимость реализовать всплывающее меню, которое то тут то там есть в проэкте.
Логично что нужно сделать единый компонент и передавать параметры меню (колбэки, название элементов и иконки) в качестве пропсов. И точка спора в том как это делать.
1. Передавать все в массиве
<OwerflowMenu
  params=[
     code: 'someCode', icon: 'someIcon', callback: () => {...},
     code: 'someCode2', icon: 'someIcon2', callback: () => {...},
 ]
 />
2. Передавать как параметры чайлдам
<OwerflowMenu>
   <MenuItem code="someCode" icon={someIcon}         callback={() => {...}}/>
<MenuItem code="someCode2" icon={someIcon2} callback={() => {...}}/>
</OwerflowMenu>
/>

Есть ли best practice под эту ситуацию?
второе лучше имхо, что касается объективности то это более читабельно
источник

cb

callpack bsm in React — русскоговорящее сообщество
Как можно заменить пуш на сетАрр, чтобы все работало так же как и с пушем? Если вместо пуша использую сетАрр, то получаю что то вроде инфинити стака
источник

S

Stanislav in React — русскоговорящее сообщество
callpack bsm
Как можно заменить пуш на сетАрр, чтобы все работало так же как и с пушем? Если вместо пуша использую сетАрр, то получаю что то вроде инфинити стака
setArr([...arr, newItem])
источник

cb

callpack bsm in React — русскоговорящее сообщество
да я знаю как пишется)), просто с использованим сетАрр-а, получается что то около миллиард ререндеров
источник

cb

callpack bsm in React — русскоговорящее сообщество
мб и инфинити
источник

S

Stanislav in React — русскоговорящее сообщество
так у вас интервал каждые 0.5 сек на ререндер
источник

cb

callpack bsm in React — русскоговорящее сообщество
Stanislav
так у вас интервал каждые 0.5 сек на ререндер
так он работает при условии что i меньше 5
источник

S

Stanislav in React — русскоговорящее сообщество
callpack bsm
так он работает при условии что i меньше 5
i обнуляется на каждом ререндере
источник

cb

callpack bsm in React — русскоговорящее сообщество
Stanislav
i обнуляется на каждом ререндере
как то можно это пофиксить?
источник

S

Stanislav in React — русскоговорящее сообщество
callpack bsm
как то можно это пофиксить?
мемоизировать, или вынести из компонента
источник

cb

callpack bsm in React — русскоговорящее сообщество
с пушем все работает, просто через такой подход ререндера нет вовсе
источник

cb

callpack bsm in React — русскоговорящее сообщество
Stanislav
мемоизировать, или вынести из компонента
выносить из компоненты пробовал, не работает
источник

RU

Roman Usherenko in React — русскоговорящее сообщество
callpack bsm
выносить из компоненты пробовал, не работает
попробуй вынести не из компоненты, а из компонента 😄
источник

cb

callpack bsm in React — русскоговорящее сообщество
у вас кот в мешке)
источник

S

Stanislav in React — русскоговорящее сообщество
callpack bsm
выносить из компоненты пробовал, не работает
localStorage но это конечно последнее о чем тут стоит думать
источник