Misha
это вроде интеграционные тесты, погугли на эту тему
Да, но там максимум какой-нибудь crud
🐏 Alexander
Всем привет, кто как использует useReducer в своих проектах? Как я понял данный хук сделан для управления локального состояния компонента, только логика выносится вне компонента с версткой чтобы не засорять сам компонент , верно?
не совсем так, он нужен чтобы корректно за один раз обновить большой стейт, чтобы не вызывать N раз сеттер стейтов, каждый вызов перерендерит компонент, не батчатся вызовы короч setItem() setFlag() setSomething()
Vall
не совсем так, он нужен чтобы корректно за один раз обновить большой стейт, чтобы не вызывать N раз сеттер стейтов, каждый вызов перерендерит компонент, не батчатся вызовы короч setItem() setFlag() setSomething()
я понял, ну если у меня допустим мне надо хранить локально 7 значений, не буду же я создавать 7 useState, легче же использоватьв данном случае useReducer и хранить всю логику там
MVD
Если делаешь setState с помощью хука, нужно ли проверять, что компонент все еще замаунчен?
🐏 Alexander
но вообще и кейс не понятен как такое может быть
MVD
для чего?
Ну компонент может уже отмаунтиться
Vadim
MVD
но вообще и кейс не понятен как такое может быть
Отправил асинхронный запрос. Ответ пришел после того, как юзер покинул страницу
Vadim
и если ты хочешь избегать лишнего setState без отмены запроса, то проверять надо
🐏 Alexander
кажется, что хук не привязан к компоненту по инстансу и если вызвать setState, то не должно быть ошибкой, но я не уверен
Cenator 🐈
Ссылка в описании
Mike
всем привет, только начинаю переводить проект/новые комопненты на хуки и появился вопрос, какая практика с вызовом экшнов к примеру после селектора компонент должен бросить экшн на обновление серверных данных. раньше скажем это было в componentDidUpdate? этот псевдокод подходит? useEffect(()=> { needUpdate && dispatch(action) }, [needUpdate]) или просто бросать экшн после вызова селектора? const needUpdate = useSelector(needUpdateSelector); if (needUpdate) dispatch(action);
🐏 Alexander
правильно что не уверен)
я просто не проверял такое, просто предположил 🙂
Mike
без условий внутри хука
т.е if (needUpdate) useEffect(() => dispatch(action)), [needUpdate]) че-то не очень =)
Китикет
Для этого if нужен
Mike
[false]) – тут не будет вызова эффекта в первый раз?
Mike
не использую просто сократил в примере
Китикет
Будет конечно
Китикет
deps не для того нужен
Mike
вот как не вызывать если там false, где условие добавить?
Китикет
При каждом вызове хука (т.е. при каждом ререндере, когда хук вызывается), он внутри проверяет, изменились ли deps, если да - заново вызывает обработчик
Китикет
Если передаешь пустой массив, вызывается только при первом рендере, т.е. аналог cDM
Віталій
Андрей
т.е if (needUpdate) useEffect(() => dispatch(action)), [needUpdate]) че-то не очень =)
Читай доку по хукам. Хуки обязаны существовать всегда.
Mike
ну у меня вначале примерно так и было
Daniil
Любители редакса и хуков, useDispatch еще сыроват?
Andrey Kvashuk
Любители редакса и хуков, useDispatch еще сыроват?
С чего бы? Зарелижен же вполне себе, юзай на здоровье
Alexeii
Ребят привет! Кому-то приходилось валидировать объект? Какие либы юзали, можно ли использовать для этого propTypes, без реакт составляющей?
Alexeii
Мне нужно буквально один объект, максимально быстро, флоу и тс - слишком большие для этого
MVD
useEffect(() => { return () => { здесь отменяешь запрос} })
Сложно добавлять отмену запросов
Bogdan
гит у всех не работает?
🤴👷‍♂️🦸‍♂️🧚‍♀️
Paul
git is dead
Paul
long live the git
Eugene
🌚hg push
Александр
ээ
Гитхаб наверное имели ввиду
Александр
У них трудности сейчас
Eugene
хз, у меня работает
Anonymous
Местами
Bogdan
хз, у меня работает
а ты попрыгай по веткам или в настройки зайди любой репы
Александр
Там видимо частично обвалилось https://github.com/apollographql/apollo-client/blob/master/packages/apollo-client/src/core/QueryManager.ts
Александр
Пятисотка вот
Paul
Да че гадать
Paul
https://www.githubstatus.com/
Eugene
👀
Bogdan
решил пульнуть вовремя
Александр
решил пульнуть вовремя
А у нас свой gitlab на случай изоляции :)
Alena
Всем привет! Приглашаем на DINS JavaScript EVENING! 31 июля в 19:30 Санкт-Петербург, Старо-Петергофский проспект, 19 Этим вечером Александр Феоктистов из Яндекс.Маркет поделится примерами статической типизации, с использованием TypeScript. Антон Тужик из SEMrush расскажет, что же такое ReasonML, какие “фишки” в нем есть, как он компилируется в JS и взаимодействует с ним, как помогает решать проблему возрастающей сложности разработки интерфейсов. Подробности и регистрация на https://dins.timepad.ru/event/1021457/ В перерыве нас ждут общение со спикерами и пицца🍕. После докладов будет небольшая экскурсия по офису DINS. Трансляция будет🎥
Vadim
Так надо или антипаттерн?)
Если ты не делаешь отмену запроса, то делай хотя б так
🤴👷‍♂️🦸‍♂️🧚‍♀️
Никому не кажется, что этим вдохновлена feature slices архитектура? Может кто знает, в чем я могу путать?
Vova
у всех гитхаб упал?
Andrei
Да
Bogdan
где можно почитать про "Бизнес логику"? я не особо понимаю данное понятие
Ivav
Ivav
Bogdan
Не надо смысла глубокого искать
ну типо в ui не должно быть бизнес логики, что именно это?
Александр
Запросы к апи например
Александр
Обработка данных