Dmitriy
4 в выдаче
Ivan
это он и есть
Ivan
ксати, не видели какой туда ксеон запихнули?
Oleg
на этом все ?
импортируешь import {history} from './helpers'; используешь history.push(`/qwe/rty`),
Vladislav
а у меня вроде гугл норм работает))))))
Bogdan
какая роль провайдер и консьюмера в контесте? и вообще зачем консьюмер, если все методы доступны и так дочерним компонентам, только что бы прям где обернули в провайдер, прослушать изменения?
Oleg
а монитор секси.
Oleg
32 дюйма, 6к
Ivan
а монитор секси.
особенно сзади
Ivan
пылесборник
Dmitriy
32 дюйма, 6к
и Что делать с 32 дюймами поясните плизе
Oleg
и Что делать с 32 дюймами поясните плизе
не знаю. просто, чем больше - тем лучше.
Oleg
размер имеет значение.
Dmitriy
Dmitry
какая роль провайдер и консьюмера в контесте? и вообще зачем консьюмер, если все методы доступны и так дочерним компонентам, только что бы прям где обернули в провайдер, прослушать изменения?
консьюмер позволяет забирать данные не только прямым потомкам, но и отдаленным тоже. По сути это замена пробросу св-в по цепочке
Mikhail
и Что делать с 32 дюймами поясните плизе
Ставить на подставку за 1к$
Dmitriy
Ставить на подставку за 1к$
намного дешевле чем у конкуретнов кек)
Bogdan
консьюмер позволяет забирать данные не только прямым потомкам, но и отдаленным тоже. По сути это замена пробросу св-в по цепочке
отдаленным это как? я думал он дает возможность забрать данные прям там где подрубили провайдер
Ivan
просто достаточно одного моника и это круто
Ivan
а то поставишь дохера этих маленьких и косоглазие развиваешь
Dmitry
Провайдер определяет, начиная с какого узла все дочерние начнут "видеть" спускаемые провайдером данные. Но для того чтобы конкретный чилд в иерархии их забрал, ему нужен консьюмер.
Dmitry
вот такой вариант
Хрень какая-то
Ivan
ну 2 лучше.
яб хотел один 32 дюйма и один мелкий с сенсорной панелькой, для всякой музыки и видосиков
Oleg
особенно сзади
не могу найти фотку.
Dmitriy
не могу найти фотку.
такаяже терка
Oleg
о
🦜
о
оффтоп бан
Oleg
та за шо(
Dmitry
https://codesandbox.io/s/prod-http-6ckzc
https://codesandbox.io/s/sharp-ives-sz1bl
Dmitry
Добавил промежуточный компонент
Dmitry
Comp1 вытаскивает методы через консьюмер.
Андрей
Есть панель с фильтром по категориям , щас они кнопками сделаны. Щас это работает так что кликаю и просто filter + map сортируют и возвращают карточки с постами. А хочется сделать что бы по клику на кнопку в адресной строке по клику например на кнопку фильтра "Брендинг" в адресной строке было типо того http://localhost:3000/proekty=brending. Как то можно сделать так?
Андрей
Есть панель с фильтром по категориям , щас они кнопками сделаны. Щас это работает так что кликаю и просто filter + map сортируют и возвращают карточки с постами. А хочется сделать что бы по клику на кнопку в адресной строке по клику например на кнопку фильтра "Брендинг" в адресной строке было типо того http://localhost:3000/proekty=brending. Как то можно сделать так?
Dmitry
Ну вообще в таком виде неудобно. Я обычно отдельно объявляю эти провайдеры и консьюмеры, а потом декоратором подключаю. Одна строчка и вуаля чилд видит нужные методы
Bogdan
https://codesandbox.io/s/sharp-ives-sz1bl
ну вот второй срин кинул, там же без консьюмера
Dmitry
Ой всё) Попробуй объявить каждый компонент примера в отдельном файле. Сделай так чтобы <App> провайдерил диалог, который рендерится в нем же. И чтобы какой-то далекий через пятое колено потомок подрубил се консьюмер и через него дернул метод показа диалога. Станет очевидно. Сорян, у меня не так много времени в сандбоксах копаться.
Dmitry
Это что-то другое уже. Это видимо хуки. Я в них не умею.
Dmitry
Альтернативный подход.
🤖Ilya
всем привет, пытаюсь разобраться с хуками, не понимаю как нормально передавать эвент хендлер в функциональном компоненте, получается в onClick каждый раз попадает новая функция - следовательно ререндер вот гист накидал с примером: https://gist.github.com/robototor/5679607f2a5be9957fe75191c85f0a25 как тут избежать ререндера компонента <Button />?
Олег
useCallback
Bogdan
Это что-то другое уже. Это видимо хуки. Я в них не умею.
я подозреваю если без хука, то достать методы только через консьюмер
Dmitry
видимо да
🤖Ilya
useCallback?
т.е. хендлер должен выглядить так? const addUser = useCallback(() => { setUsers([ ...users, { id: `user-${users.length}`, name: `User ${users.length}`, } ]); }, [users]);
🤖Ilya
как вариант
но я так понимаю что из-за того что массив users меняется, то возвращается уже не мемоизированное значение, т.е. в данном кейсе это не работает? или как?
Maksim
когда он изменится вернется новая функция
Maksim
что бы заюзать dispatch нужно передать ему экшн вот есть кнопка с onClick как вызвать диспатч и передать экшн в него?
Maksim
() => dispatch
каждый рендер новая функция, чего и хотел избежать автор вопроса
🤖Ilya
() => dispatch
ну дык это каждый рендер - новая функция -> ререндер кнопки
Eugene
)))
🤖Ilya
this.handleClick dispatch()
компонент функциональный
Anonymous
т.е хендеры юсстейта никого не волнуют
Anonymous
то что это arrow
🦜
написать тогда хук. В хуках между ререндарами сохраняется состояние
Maksim
т.е хендеры юсстейта никого не волнуют
у юсстейта сеттер не меняется
Anonymous
сеттер нет, но функция которая его вызывает - да
Anonymous
если не useMemo
Ula
Где можно почитать примеры хорошего и грамотного react кода? На гитхабе может есть репы от супер специалистов, опинион мейкеров?
Maksim
сеттер нет, но функция которая его вызывает - да
да, для этого придумали useCallback, частный случай useMemo