Vlad
День добрый
Igor
Ткните меня носом, в чем проблема, что происходит куча ререндера, ведь второй аргумент пустой массив, по идее он должен запуститься один раз
Igor
уходит в бесконечный цикл
ipos
ты делаешь setValue и используешь тут же этот value наверное поэтому
Igor
не очень понял
Igor
даже используя в аргументах колбэк тоже не решает проблему
Maxim
а что ты в итоге хочешь получить?
Igor
установить в стейт новый массив
Daniil
Что за ключ unique ? Покажи подробней компонент
Petr
что за говнокод
Igor
скажем так, использую хук, например array.unique(); где он массив объектов по полю, которое передаю по аргументам смотрит на уникальность значений
Maxim
а нельзя это все без редьюсера и конката сделать ? :D
Igor
дальше по array.value у меня лежит уникальный массив
Igor
это что-то вроде хэлпера у меня
Igor
а нельзя это все без редьюсера и конката сделать ? :D
можно, можно, но вопрос заключался в другом, и не понимаю почему так происходит, по сути должно быть всё ок
ipos
если это хелпер то зачем он написан как хук, нельзя было просто функции сделать?
Igor
бля, ладно, никто не может подсказать в чем проблема
Igor
сам разобрался, спасибо
Daniil
Расскажешь ?
Igor
я не правильно вызывал метод unique, он у меня висел в рендере компонента, поэтому и уходил в бесконечный цикл, засунул в хук useMount, теперь ок
Igor
но всё равно не понятно, почему такое поведение, по факту должен вызываться один раз, поскольку я передал вторым аргументом пустой массив, т.е. 1 вызов
Igor
а если передать вторым аргументам сам этот массив?
Александр
а если передать вторым аргументам сам этот массив?
Куда, в useCallback? Это не повлияет на поведение
Nikita
дальше по array.value у меня лежит уникальный массив
Я извиняюсь, а это из продакшена код ?
Александр
Я извиняюсь, а это из продакшена код ?
Будто бы самое страшное что может быть
Александр
Вы не поверите возможно, если рассказать в каких критических по важности системах какой говнокод встречается. Это реальный мир же.
Igor
а чем этот код плох?) В названиях аргументов и форматировании?
ipos
все равно не понимаю зачем это оформлять как кастомный хук
Igor
может еще на каждую строчку комментарий писать?)
Александр
а чем этот код плох?) В названиях аргументов и форматировании?
Не берите близкое сердцу, не хотел обидеть, просто ваш код далек от совершенства всё-таки, а мой поинт был в том, что в прод попадает зачастую именно такой несовершенный код, это норма
Igor
а в чем несовершенство? Мне интересно просто, в какую сторону мне расти
Daniil
Исторически так сложилось
Nikita
а в чем несовершенство? Мне интересно просто, в какую сторону мне расти
почитай базовую литературу какую-нибудь clean code хотя бы
Александр
Александр
Например
Дока реакта :)
Denis 🇺🇦
Например мутируете стейт в removeByIndex
Типа надо было скопировать и потом менять?
Александр
Интересная норма
Ну у вас может в прод попадёт вылизанный до совершенства код, со стопроцентным покрытием тестами и полностью документированный. По моему опыту это не так. Вот.
Igor
спрашивал конкретный вопрос, а меня закидали говном, классика)
Александр
Igor
setState у хуков не работает, если мутируется массив/объект
ipos
в смысле говном закидали, тебе подарили бесплатные советы и код ревью, какие неблагодарные люди пошли
Igor
ссылка остается прежней, тогда объясните, почему в колбэке splice нормально отработал?)
Александр
setState у хуков не работает, если мутируется массив/объект
Эм, не совсем понял. Если вызывается setState то происходит ререндер. Ему по-фиг менялось там что-то или нет
Zaff
Привет всем. Кто как имитирует модификаторы из БЭМ в Styled Components? как я понял, через пропсы только 2 варианта можем иметь, или код превратится в кашу) а если через темизацию делать, то это уже разные элементы, как я понял
Daniil
Бэм в ск?
Zaff
https://github.com/styled-components/styled-components/issues/1222 Нашел огромный тред, обсуждали и спорили долго, но в итоге автор треда запилил свою либу. Но не хочется тащить либу левую.
Zaff
Бэм в ск?
Не совсем. Мне просто нужно нечто на подобие модификатора
Michail
Не кто не знает как получить имя функции, которая в onClick при onClick? или только в value передавать?
Андрей
Нашёл модуль nodemailer с ним получилось
Sm•ok
Всем привет. Кто как делает мультиязычность ? У вас в руте папка + много lang-name.json ?
Sm•ok
ну это понятно
Sm•ok
Я про само хранение переводов, а не либу
Demuz
Всем привет. Кто как делает мультиязычность ? У вас в руте папка + много lang-name.json ?
Здарова, папка lang с json файлами внутри, 1 индекс файл, который импортирует все json и складывает в объект с ключами, равными коду языка: {ru: ruJSONFile}. Получается вызов идет как-то так: lang = langs[selectedLang] и так далее. selectedLang переключаемый через redux, mobx и так далее.
Alexey
ага, в ts-ах (js-ах)
Sm•ok
ага, в ts-ах (js-ах)
ну, я слышал подход с JSON, как описали выше. Поэтому хотел узнать все варианты
Igor
а файл локализации достаточно объемная штука
Vlad
хорошим тоном считается разбивать файлы локализации по роутам
Demuz
если так делать, то у тебя все языки грузятся, вне зависимости от того, нужен он или нет
Динамику можно сделать, не вопрос. При переключении языка просто загружаться он будет сначала.
Demuz
Извиняюсь, я думал это группа для мобильных по запарке, в мобильном все локадизации зачастую уже в устройстве. И займет 5 или 10 мегабайт озу, сейчас не особо важно, а в вебе - возможно
Demuz
Как вариант еще делают переинициализацию приложения и при старте оно инициализирует выбранный язык заново.
Alexey
10 мегабайт в озу было важно лет 15-20 назад