artalar
artalar
Ivansky
Ну вот
Это говорит о том, что ты можешь так сделать, а не о том что это нормальная практика.
didMount, didUpdate - в основном для сайд-эффектов, а не для обновления состояния
Ivansky
Короче) Переезжате на хуки уже
https://overreacted.io/how-are-function-components-different-from-classes/
artalar
Бабель мб может
Андрей
artalar
Помню говорили год назад что новый бабель сможет какие-то полифилы автоматом подставлять. Как сейчас с этим - не знаю. В любом случае надежнее всего полифилы самому добавить
Ivansky
preset-env и browserlist
Ivansky
Не надо ничего руками составлять, уже давно 7+ версия на дворе
artalar
Прям норм автоматом подставляет?
artalar
Просто если видет .includes?
Ivansky
Я вебпаку тоже не доверяю, начать что-ли файлы руками склеивать
Daniil
Daniil
Под ие
Daniil
Но вроде с какой - то версии и пресет енв не нужен
Daniil
Но это не точно
artalar
Т.е. такое, конечно, не прокатит
list[‘i’ + ‘cludes’](…)
Daniil
Извращение
Daniil
🤔
Ivansky
Ivansky
@artalar
babel-preset-env использует kangax/compat-table и browserslist
Это дает ему понимание, что и кто не поддерживает
Вот https://github.com/babel/babel/blob/master/packages/babel-preset-env/package.json#L78
artalar
artalar
Ivansky
Не буду спорить, так глубоко не заглядывал, не могу сказать как он AST дерево строит
Daniil
Тут уже надо смотреть по примерам, но в моих кейсах для ие11 он норм с инклюдс работал
artalar
Я верю что бабель может это все автоматом, я лишь подчеркиваю что это не абсолютно надежно
Daniil
Возвращаемся в 2007 и пишем надежно ?)
artalar
artalar
Daniil
Эх, а было прикольно на нем клепать сайты
Daniil
Вроде же переименовались?
Nikola
Еще возможно очень нубский вопрос, но как лучше реализовать? Нужно сделать так, чтобы при открытии одного календаря, закрывался другой. Использую редакс
Daniil
Andrey
Андрей
Dmitriy
Привет всем. Задеплоился на хероку и апликуха почему-то пытается тянуть Еслинт... Там ж продакшн окружение и Еслинт не должно трогать вообще
rovnyart
ребят, подскажите плз, можно ли каким-нибудь грязным хаком сделать document.body.appendChild в самый верхний див, не зная его id?
rovnyart
всмысле создать див, который будет ребенком самого верхнего div-а в body
Arti 🦠
rovnyart
подскажите плз, как)
Arti 🦠
Если самым грязным хаком то можно
Arti 🦠
Тебе нужно обратиться к боду, взять его детей и обратиться к первому ребенку
Arti 🦠
Обычная работа с дом узлами. Но есть проблема
Arti 🦠
Дом узлы генерируются не сразу ...
Arti 🦠
А тебе зачем вообще это ?
Arti 🦠
Может ты что то не то пытаешься сделать
rovnyart
я пишу некий компонент, который бы показывал уведомления, и мне обязательно нужно уметь "вызывать" эти уведомления из любого места реакт-приложения, то есть н только внутри компонентов, но и внутри всяких там внешних конфигов, вообще внутри любых файлов, для этого я написал функцию, которая принимает сообщение и создает новый див, в котором рисует уведомление при помощи библиотеки, но создаю я этот див как document.body.appendChild(div), а приложение у меня завернуто во всякие там Theme-prodivder-ы, и мне надо, чтобы этот див с уведомлением был внутри дива root, а в общем случае - внутри самого внешнего дива в body
Dmitriy
Такое через порталы вроде делается по-нормальному
artalar
я пишу некий компонент, который бы показывал уведомления, и мне обязательно нужно уметь "вызывать" эти уведомления из любого места реакт-приложения, то есть н только внутри компонентов, но и внутри всяких там внешних конфигов, вообще внутри любых файлов, для этого я написал функцию, которая принимает сообщение и создает новый див, в котором рисует уведомление при помощи библиотеки, но создаю я этот див как document.body.appendChild(div), а приложение у меня завернуто во всякие там Theme-prodivder-ы, и мне надо, чтобы этот див с уведомлением был внутри дива root, а в общем случае - внутри самого внешнего дива в body
Засунув див в id=root примонтированный туда компонент провайдерами не обернется. Хуже того, реконсайлер может этот див в некоторых случаях потереть полностью
Dmitriy
artalar
Скажи зачем может понадобится пихать пропсы в стейт?
Когда есть переключение между контролируемым и некотролируемым свойством компонента.
Это частая задача библиотечных компонентов.
Например: есть форма, в ней своя валидация, которая может показывает ошибки (хранится в стейте). По сабмиту форма уходит в глобальный стейт, дальше асинк запрос которого прилетают ошибки и их нужно показать - передав через пропсы
artalar
Dmitriy
rovnyart
Засунув див в id=root примонтированный туда компонент провайдерами не обернется. Хуже того, реконсайлер может этот див в некоторых случаях потереть полностью
ну кстати я чет вообще не понимаю, зачем мне нужны такие извращения, не понимаю, почему у меня слетают настройки типографики, если в MuiThemeProvider у меня завернут по сути div id="root", а при показе уведомления у меня создается новый див, соседний с root, куда и рендерится это уведомления. Но факты таковы, что на время показа уведомления у меня слетают шрифты на всей остальной странице, а когда уведомление пропадает - все восстанавливается( Подскажите плз, почему такое может быть?
rovnyart
rovnyart
Ivansky
Ты используешь Portal?
rovnyart
нет просто reactdom.render в соседний див
Ivansky
🙈
rovnyart
с порталом у меня вообще не отображается уведомление)
rovnyart
а, я кажись понял в чем дело, сама библиотека уведомлений использует собственную тему material-ui :(
Bogdan
всем привет, подскажите, вот это как можно переписать нормально?
Bogdan
Bogdan
тоесть мне нужно получать статью текущую и пихать ее в формик, но из-за того, что формик после перерендера не берет новый стейт, приходится вот так делать
Anonymous
Bogdan
На класс
я выполняю запрос на получение текущей записи из стейта, изначально то она пустая, но формик ловит как раз первый вариант и после перерендера не подхватывает новый стейт, пришлось сделать проверку, типо если id текущей статьи совпал с id в урле рендерить форму, может в формике есть что, не могу найти
Bogdan
тоесть нужно именно формик перерендерить, не могу найти как это сделать , есть ли вообще у него такой метод
rovnyart
чето у тебя вообще какая-то дичь написана, начать хотя бы с того, что у тебя вторым значением из хука useState возвращается некий getxxx, что как бы немношк не по соглашению, да еще он в useEffect вызывается над каким-то коллбэком, этот код даже если чудом щас работает, через неделю без поллитры никто не разберет
Bogdan
чето у тебя вообще какая-то дичь написана, начать хотя бы с того, что у тебя вторым значением из хука useState возвращается некий getxxx, что как бы немношк не по соглашению, да еще он в useEffect вызывается над каким-то коллбэком, этот код даже если чудом щас работает, через неделю без поллитры никто не разберет
как бы get на set переименую, проблема не уйдет, у меня есть екшен, который достает текущую запись и пихает ее в стор, но изза того что формик чудесный не ловит новое значение, приходится пока так обновлять насильно
Daniil
Зачем внутри гет каррент стрелка вообще
rovnyart
и скорее всего у тебя какая-то ошибка в архитектуре, раз ты так форму рендеришь по условию, форму надо рендерить выше по виртуальному дереву, чтобы initialValues в нее попадали с сервера сразу
Bogdan
не дотер старое, это пробный варик, пока кручу , пытаюсь что то сделать
rovnyart
ну и конечно getcurrentsummary обяхательно переименовать в setcurrentsummary
Bogdan