Size: a a a

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

2020 July 16

АБ

Александр Бакиматов... in React — русскоговорящее сообщество
Dmitry Kazakov
если вы не сталкивались с тем, что я пишу - ну тут я ничего поделать не могу, верить мне не надо, доходите до этого сами)
проблема в том что все описаное тобой очень сильно смахивает на проблему описания всей логики в компонентах, и это как раз уже не проблема реакта а проблема разработчика
источник

S

Sm•ok 😈✔️ in React — русскоговорящее сообщество
Dmitriy Shuleshov
Опять ты со своим датасетом) все никак не попробую этот подход
Чтобы анонимку не передавать, то

arr.map(item => (
    <div data-id={item.id} onClick={handleClick}>
   {item.name}
   </div>
))

const handleClick = useCallback (e => {
    const id = Number(e.target.dataset.id);

    selectCard(id)
}, [selectCard])
источник

ei

export default - зло... in React — русскоговорящее сообщество
Dmitry Kazakov
если вы не сталкивались с тем, что я пишу - ну тут я ничего поделать не могу, верить мне не надо, доходите до этого сами)
Тут скорее тебе надо доходить до вынесения бесполезной для компонентов логики наружу
источник

ei

export default - зло... in React — русскоговорящее сообщество
А мы уже давно дошли
источник

DS

Dmitriy Shuleshov in React — русскоговорящее сообщество
Sm•ok 😈✔️
Чтобы анонимку не передавать, то

arr.map(item => (
    <div data-id={item.id} onClick={handleClick}>
   {item.name}
   </div>
))

const handleClick = useCallback (e => {
    const id = Number(e.target.dataset.id);

    selectCard(id)
}, [selectCard])
Я помню помню, мне идея нравится но чет никак не применил пока
источник

DK

Dmitry Kazakov in React — русскоговорящее сообщество
export default - зло is the side effect
Тут скорее тебе надо доходить до вынесения бесполезной для компонентов логики наружу
сколько же пафоса
источник

DT

Daniil Tchernyavsky in React — русскоговорящее сообщество
это не пафос, я как бы не держу логику в реакт компоненте
источник

DT

Daniil Tchernyavsky in React — русскоговорящее сообщество
и тут многие так делают
источник

АБ

Александр Бакиматов... in React — русскоговорящее сообщество
Dmitry Kazakov
сколько же пафоса
у тебя какие то двойные стандарты
источник

DT

Daniil Tchernyavsky in React — русскоговорящее сообщество
не пробовал так же?
источник

Д

Дмитрий in React — русскоговорящее сообщество
Народ. Помогите пожалуйста решить проблему.
У меня есть главный компонент в котором я в select выбираю Валюту
Храню ее в state.
const [currency, setCurrency] = useState<number>(1);



И у меня есть массив дочерних элементов
const [products, setProducts] = useState<IProduct[]>([]);


При нажатии на кнопку (Создать элемент) я делаю следующее
const component = (
     <CreateOnePaymentProduct payload={{ currency }}/>
   );
   const product: IProduct = {component};
   setProducts(oldArray => [...oldArray, product]);

 
Далее я в коде вывожу этот список компонентов таким образом:
{products.map(item => item.component)}


Но когда я меняю валюту в главном компоненте, мне нужно что бы в дочернем он тоже поменялся.
Что бы в дочернем компоненте обновилась
props.payload.currency


Каким образом это сделать?
Буду очень благодарен за помощь
источник

ei

export default - зло... in React — русскоговорящее сообщество
Dmitry Kazakov
сколько же пафоса
Наверное стоит задуматься, почему ты такой особенный, что у тебя пачка каких-то проблем, но у других ничего такого нет и они радостно пишут красивый оптимизированный код
источник

DS

Dmitriy Shuleshov in React — русскоговорящее сообщество
Dmitry Kazakov
сколько же пафоса
Так кажется. Тебе эту одну фразу в разных ипостасях сказли несколько человек
источник

И

Иван in React — русскоговорящее сообщество
Александр Бакиматов
@gorbunov_i тут глаза на хуки открывать будут, присоендиняйся)
Откуда читать? Я в отпуске — не слежу
источник

АБ

Александр Бакиматов... in React — русскоговорящее сообщество
Иван
Откуда читать? Я в отпуске — не слежу
Telegram
Dmitry Kazakov in React — русскоговорящее сообщество
В целом недостатки хуков можно разбить на семантические (синтаксис, основанный на соглашениях), анти-best-practice (смешение синхронного и асинхронного кода, сайд-эффекты в колбэках, раздувание чистых функций и смешение ответственности), сложностей в композиции (т.к. нет доступа к общим props и context, приходится передавать их в каждую функцию напрямую, что приводит к запутанному клубку), деградации перфоманса (т.к. приходится либо обкладывать многие части useCallback / useMemo, либо логика будет пересоздаваться на каждый ререндер и не будет работать сравнение по ссылкам).
В классах же:
- инкапсулированная логика с методами, в которых уже есть доступ к props, context и другим методам
- чистые render-функции
- человекопонятный жизненный цикл
- простота установки переменных (ref / не ref)
- одинаковые функции типа this.handleChange без оборачивания в дополнительный useCallback (бонус — легкость удаления обработчиков вроде addEventListener)
- возможность применения декораторов в @-синтаксисе как глобально к классу…
источник

DT

Daniil Tchernyavsky in React — русскоговорящее сообщество
Дед, подожди статью лучше
источник

DS

Dmitriy Shuleshov in React — русскоговорящее сообщество
Иван
Откуда читать? Я в отпуске — не слежу
Чем занимаешся на отдыхе? молодеешь?)
источник

DT

Daniil Tchernyavsky in React — русскоговорящее сообщество
и готовь extedns class
источник

DK

Dmitry Kazakov in React — русскоговорящее сообщество
export default - зло is the side effect
Наверное стоит задуматься, почему ты такой особенный, что у тебя пачка каких-то проблем, но у других ничего такого нет и они радостно пишут красивый оптимизированный код
посмотреть бы, я тоже слышу от тутошних ребят только слова о собственной крутости)
источник

DT

Daniil Tchernyavsky in React — русскоговорящее сообщество
а чего смотреть? Просто вся логика уходит на уровень стм
источник