Vlad
День добрый
Igor
Ткните меня носом, в чем проблема, что происходит куча ререндера, ведь второй аргумент пустой массив, по идее он должен запуститься один раз
Igor
уходит в бесконечный цикл
ipos
ты делаешь setValue и используешь тут же этот value наверное поэтому
Igor
не очень понял
Igor
даже используя в аргументах колбэк тоже не решает проблему
Maxim
а что ты в итоге хочешь получить?
Igor
установить в стейт новый массив
Daniil
Что за ключ unique ? Покажи подробней компонент
Petr
что за говнокод
Igor
скажем так, использую хук, например array.unique();
где он массив объектов по полю, которое передаю по аргументам смотрит на уникальность значений
Maxim
а нельзя это все без редьюсера и конката сделать ? :D
Igor
дальше по array.value у меня лежит уникальный массив
Igor
это что-то вроде хэлпера у меня
ipos
если это хелпер то зачем он написан как хук, нельзя было просто функции сделать?
Igor
бля, ладно, никто не может подсказать в чем проблема
Igor
сам разобрался, спасибо
Daniil
Расскажешь ?
Igor
я не правильно вызывал метод unique, он у меня висел в рендере компонента, поэтому и уходил в бесконечный цикл, засунул в хук useMount, теперь ок
Igor
но всё равно не понятно, почему такое поведение, по факту должен вызываться один раз, поскольку я передал вторым аргументом пустой массив, т.е. 1 вызов
Александр
Igor
а если передать вторым аргументам сам этот массив?
Nikita
Igor
Александр
Вы не поверите возможно, если рассказать в каких критических по важности системах какой говнокод встречается. Это реальный мир же.
Igor
а чем этот код плох?) В названиях аргументов и форматировании?
ipos
все равно не понимаю зачем это оформлять как кастомный хук
Igor
может еще на каждую строчку комментарий писать?)
Igor
а в чем несовершенство? Мне интересно просто, в какую сторону мне расти
Daniil
Исторически так сложилось
Nikita
Александр
Denis 🇺🇦
Александр
Nikita
Дима
Александр
Интересная норма
Ну у вас может в прод попадёт вылизанный до совершенства код, со стопроцентным покрытием тестами и полностью документированный. По моему опыту это не так. Вот.
Igor
спрашивал конкретный вопрос, а меня закидали говном, классика)
Nikita
Александр
Nikita
Александр
Igor
setState у хуков не работает, если мутируется массив/объект
ipos
в смысле говном закидали, тебе подарили бесплатные советы и код ревью, какие неблагодарные люди пошли
Nikita
Igor
ссылка остается прежней, тогда объясните, почему в колбэке splice нормально отработал?)
Igor
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 ?
Alexey
Sm•ok
ну это понятно
Sm•ok
Я про само хранение переводов, а не либу
Alexey
ага, в ts-ах (js-ах)
Sm•ok
ага, в ts-ах (js-ах)
ну, я слышал подход с JSON, как описали выше. Поэтому хотел узнать все варианты
Igor
Igor
а файл локализации достаточно объемная штука
Vlad
хорошим тоном считается разбивать файлы локализации по роутам
Igor
Demuz
Igor
Ruslan
Здарова, папка lang с json файлами внутри, 1 индекс файл, который импортирует все json и складывает в объект с ключами, равными коду языка: {ru: ruJSONFile}. Получается вызов идет как-то так: lang = langs[selectedLang] и так далее. selectedLang переключаемый через redux, mobx и так далее.
Привет, делал так, в корне лежала папка languages, в ней уже ru, en и другие языки, и файл с переводом JSON, a 18next уже разруливала какой файлик подтянуть
Igor
Demuz
Извиняюсь, я думал это группа для мобильных по запарке, в мобильном все локадизации зачастую уже в устройстве. И займет 5 или 10 мегабайт озу, сейчас не особо важно, а в вебе - возможно
Demuz
Как вариант еще делают переинициализацию приложения и при старте оно инициализирует выбранный язык заново.
Alexey
10 мегабайт в озу было важно лет 15-20 назад
Igor