Alex
А зачем писать данные формы в стор, вы их реиспользуете в другом месте?
давайте теперь наконец-то узнаем, что же таке стор и для чего он нужен?
Максим
Всегда (ну или почти всегда) можно обойтись локальным стейтом, но иногда просто удобнее через стор это проворачивать
Wlatt
ну ок, setInterval на 30 * 1000
Спасибо, а сетинтервал лучше в useEffect пихать?
Максим
И по опыту могу сказать, чем больше проект, тем проще это будет масштабировать. Если больше сотни форм, я вряд ли рискну все сохранять в локальный стейт
Alex
Спасибо, а сетинтервал лучше в useEffect пихать?
даже не знаю, если честно, но предполагаю, что нет
Yuri
Всегда (ну или почти всегда) можно обойтись локальным стейтом, но иногда просто удобнее через стор это проворачивать
Локальный стейт лучше юзать для вью функционала не имеющего отношения к бизнес логике ) ну чисто мое мнение
Роман
Спасибо, а сетинтервал лучше в useEffect пихать?
C setInterval в хуках у тебя может возникнуть проблема, вот только что буквально с ней столкнулся, так никто и не подсказал в чем была загвоздка. Но если что, то может пригодиться: https://overreacted.io/making-setinterval-declarative-with-react-hooks/
Andrey
https://reactjs.org/docs/concurrent-mode-intro.html
Wlatt
В голову приходит только пока на примере классовой компонеты засунуть интервал в componentDidMount и в нем дергать санку
Face
Кстати по поводу сетинтервала и паттернов, вроде как лодеш, предоставляет более оптимизированные методы
Wlatt
А что сделать надо?
Каждые 30 сек обновлять данные в редаксе по апи
Face
Я бы тебе посоветовал redux-saga, сделаешь экшен который будет вызывать цепочку апи запроса и складывать в стор, а этот экшен обернешь в метод лодеша и вызовешь в компоненте
Face
Ну для сетинтервала не помню, а для сет таймаута delay/debounce но их же можно рекурсивно вызывать
Face
Сначало, тогда стоит почитать про генераторы в es6
Ilya
Всем привет, хочу по нажатию на label Создать пользователя, чтобы открывался отдельное окнос формой для создания юзера и по успешному созданию закрывать окно и перезагружать dropdown Такое вообще возможно ? Если да, то как такое можно сделать ?
Anonymous
Wlatt
Еще вопрос, кто как локилазацию интерфейса реализует?
Face
I18
Ilya
Да у меня просто вопросы по тому, как можно по успешному созданию юзера перезагружать dropdown
Alex
Да у меня просто вопросы по тому, как можно по успешному созданию юзера перезагружать dropdown
как вы его "приготовили"? просто добавьте немного перца.. вопрос в том, как он у вас устроен
Face
По нажатию делаешь props.history.push(/путьдоформы) потом на форме по успешному сабмиту то же самое куда надо
Ilya
как вы его "приготовили"? просто добавьте немного перца.. вопрос в том, как он у вас устроен
через useEffect подгружаю с сервера массив данных для dropdown и отрисовываю их
Ilya
Ладно, сейчас попробуй, спасибо
Wlatt
I18
Везде гуглится i18next. Но никак не пойму, можно ли для каждой компоненты свой файл локализации писать, как css module например
Георгий
Делаю свой первый небольшой проект-сайт на реакте и такой вопрос возник. Стоит ли делать отдельный css файл для адаптива или написать там же где непосредственно стили компонентов?
Dima
Ты можешь написать для себя mediaSmallerThan функцию и вообще огонь будет
Koks
Посоветуйте, style components какие нибудь готовые)
Dima
На вход принимает два параметра. Первый - разрешение, второй - css код. Возвращает уже с медиа оберткой.
Dima
mediaSmallerThan(‘md’, css’’)
Георгий
Там же. Рекомендую styled components
Походу мне еще многое предстоит узнать) впервые слушу об этом кстати
Dima
Чем больше знаешь тем меньше знаешь 🤷🏻‍♂️
Георгий
Чем больше знаешь тем меньше знаешь 🤷🏻‍♂️
Начать гуглить, как я понял это css библиотека, которая заменяет написание самого css? Сейчас подробнее вникну
Dima
Да. Она имеет большинство возможностей scss. SCSS имеет проблему, что если ты подключишь стили к компоненту, они станут глобальными. А тут мы стилизуем четко компоненты, позволяет переиспользовать, перестилизовать их.
Wlatt
Но я использую material ui и там удобнее jss
Георгий
Что ты имеешь в виду?
Можно же написать style.module.css и тогда стили не будут глобальными
Dima
Не пробовал, но на первый взгляд мне кажется это не решит проблему.
Alex
А как насчет модулей css? Решают вроде проблему глобальности стилей
а в чем проблема? и что такое "глобальность стилей"?
Георгий
Не пробовал, но на первый взгляд мне кажется это не решит проблему.
Там суть в том, что этот модуль изменяет все классы в css добавляю им рандомные цифры буквы и тд и возвращает как объект обычные имена. Нужно импортивать немного иначе к примеру import classes from styled.module.css. И далее к примеру есть класс нейм item, в модуле он может быть как item-6586-AJdsv, а в js файле обратишься к нему как className = {classes.item} и в результате не будет конфлитка имен если в другом файле создаешь еще один класснейм item.
Георгий
а в чем проблема? и что такое "глобальность стилей"?
В том, что если у тебя Большой проект, а на реакте обычно именно такие, то в какой то момент тебе придется сотни папок пролистывать, проверяя использовался ли уже такой класс нейм в проекте, ведь будет неловко если на десятой странице я изменю стили, которые были скажем на 2 странице, держать в голове все стили которые были, можно только если проект небольшой и ты один его пишешь
No
Бэм <3 (нет)
Георгий
Не панацея, в какой то момент названия могут дойти до слишком огромных размером) да и даже по бэму могут возникнуть совпадения, два врапера каких нибудь одинаковых
Alex
Не панацея, в какой то момент названия могут дойти до слишком огромных размером) да и даже по бэму могут возникнуть совпадения, два врапера каких нибудь одинаковых
не знаю, как остальные обращаются с css и классами, обычно пытаюсь конкретизировать использование класса, и имена могут совпадать, к примеру .success, может быть в разных местах абсолютно разным, из-за дочерних и родительских классов
Георгий
глобальность стилей, как я понимаю, это использование body,input,h1..2.3 и прочее, т.е. привязывание к html tag
Нет, это значит, что если я создам класс нейм header в одной папке и напишу ему стили, а потом создам в другой папке класс нейм header все стили перейдут и ему
No
чем это чревато?
Ну а вы как думаете? Разве эти не очевидно?
Alex
Здесь речь шла не про теги, а про то, что говорили выше
я хотел понять, правильно ли я понял о чем идет речь, и правильно ли называют вещи своими именами
No
Ну вот человек ответил ещё раз. Там про это идёт речь
Alex
Ну а вы как думаете? Разве эти не очевидно?
предположительно избыточностью кода, и естественно несколькими байтами
No
предположительно избыточностью кода, и естественно несколькими байтами
Избыточность и дублированность кода гораздо большая проблема, чем пара байт
No
А когда проекту наступает 5/10+ лет, то это становится уже проблемой другого масштаба
Alex
Нет, это значит, что если я создам класс нейм header в одной папке и напишу ему стили, а потом создам в другой папке класс нейм header все стили перейдут и ему
в таком случае тут может только помочь inline стиль, не уверен, как браузер с этим справляется, быстрее или медленнее
Alex
А когда проекту наступает 5/10+ лет, то это становится уже проблемой другого масштаба
хм, я вот не припомню, чтобы проект был столько стойким к дизайну
Alex
Так вот тут как раз и помогает CSS in js-подобные решения
ну вот вам пример, меню, вы в каждом элементе будете использовать inline?
No
Так css in js это не инлайн
Alex
тогда вопрос отпадает
Alex
я попутал, прошу прощения