🦜
@itsjohncena
Anonymous
Ага. Держи в курсе. В инпуте отобразишь html тоже?
чо?) задача цифру отобразить, а ты предлагаешь как я понял делать див вместо инпута и вешать атрибут contenteditable
Dmitriy
@itsjohncena
незя бота подрубиьт что ссылки новеньким запрещает?
Anonymous
Если я хочу и React.forwardRef, и React.memo, как быть?
Vyacheslav
Если я хочу и React.forwardRef, и React.memo, как быть?
можно же передать рефу просто под другим именем, например innerRef
Cenator 🐈
Илья
const [logged, setLogin] = React.useState(false); else if (response.status === 400){ setLogin(logged = false ) } Длеаю всё вроде как по доке, но не перезаписывается переменная, подчеркивает что пытаюсь перезаписать константу
Cenator 🐈
можно же передать рефу просто под другим именем, например innerRef
Все либы уже поменяли иннерреф на форвардреф
Vyacheslav
Нарушает семантику
такое себе, на проекте вы все знаете что это, из названия тоже следует что это, плюс это просто самая обычная пропса, это не внутренный интерефейс типа key context etc
Vyacheslav
Все либы уже поменяли иннерреф на форвардреф
и не все, материал использует innerRef)
Cenator 🐈
и не все, материал использует innerRef)
Ну и хуй с ним, не надо таких советов все равно
Vyacheslav
еще екзампл, если несколько ссылок надо передать, например на инпут и кнопку, как ты будешь это делать форвардом
Cenator 🐈
Это уже хуйня какая-то
Cenator 🐈
Надо композицией решать
Cenator 🐈
Через рендер пропс/чилдрен рендеришь кнопку и инпут
Anonymous
Оберни друг в друга
Странно, но работает. Спасибо, вопрос решён.
Anonymous
Иннер реф не нужен.
Cenator 🐈
В муи например в dialog actions ты не передаешь только хендлеры, а именно сами кнопки и уже вешаешь рефсы если надо
Vyacheslav
мир спасен
Vyacheslav
TextField в то же самое время
Vyacheslav
причем в этом случае вариантов вообще нет, помимо такого
Cenator 🐈
Как бы не был хорош муи, косяки все равно есть
Anonymous
КМК, композиции внутри простых компонентов — плохой дизайн.
Anonymous
Композиция из простых компонентов — хороший дизайн. При таком раскладе приходится пробрасывать меньше пропсов и рефов вместе с ними.
🦜
Есть компонент Card из mui. Навешиваю на него onClick. Как сделать так, чтобы клик не срабатывал, когда кликаешь по кнопкам, которые находятся в CardActions и СardHeader компонентах?
🦜
event.stopPropagation()?
Пробовал, не подходит
🦜
а, я не там его прописал
Roman
event.stopPropagation()?
костыль...
🦜
костыль...
а как еще можно?
Alexey
ща предложит сравнивать event.target
Roman
ну вот есть неплохая статейка, на мой взгляд https://css-tricks.com/dangers-stopping-event-propagation/
Anonymous
костыль...
Кек. Еслиу нас есть <A><B /></A>, то для того, чтобы клик по B не всплывал, мы должны юзать event.stopPropagation, очевидно. Оно для этого и предназаначено. Какие есть предложения?
Roman
Кек. Еслиу нас есть <A><B /></A>, то для того, чтобы клик по B не всплывал, мы должны юзать event.stopPropagation, очевидно. Оно для этого и предназаначено. Какие есть предложения?
проблема в том, что оно теперь не всплывет не только в A, но и выше (например если это надо для аналитики и всего такого)
Roman
чтоб это побороть надо тогда вешать евенты, которые "нельзя отменять" на capture phase, но не все об этом знают - и в результате пишется дичайшая вермишель
Anonymous
Для этого в SPA есть одна или несколько шин событий, как правило. Подключаешься к ней и получаешь доступ ко всему, что происходит в приложении.
Roman
хм, ну можбыть в контексте реакта это и неважно
Anonymous
Я бы сказал, это может быть даже вредно. С последствиями такого и боролся @popuguy.
Влад
Ребят, всем привет.
Влад
Подскажите, есть ли какой то аналог useMemo для методов класса ?
Влад
Что бы функция пересчитывалась только если определенные пропсы или стейт изменились, что то по типу реселекта
Влад
у меня просто есть метод shouldShowSelect, он возвращает булин в зависимости от условий, а в методе рендер this.shouldShowSelect отвечает за отрисовку элемента
Dmitry
есть что то для виртуализации? react-window или что то такое что бы считало высоту ячейки
Alexey
у меня просто есть метод shouldShowSelect, он возвращает булин в зависимости от условий, а в методе рендер this.shouldShowSelect отвечает за отрисовку элемента
в рендере у тебя viewmodel в зависимости от пропсов/стейта а чтобы реакт не запускал жизненный цикл дальше scu - в scu в зависимости от пропсов/стейта делай выбор, нужно ли обновлять компонент или нет
Anonymous
Если я импорчу свг в реакт-компонент, то при билде эта свгшка попадет в сам бандл, что увеличит его размер? Думаю, есть ли смысл импортить так кучу свг-иллюстраций и вставлять их инлайново, или же лучше подключать их как статические изображения, т.е. через тег имг?
Vadim
Во всех случаях они будут кэшироваться, но при подключении через Img ты не сможешь менять их цвет
Anonymous
Во всех случаях они будут кэшироваться, но при подключении через Img ты не сможешь менять их цвет
так а в чем прикол импортить кучу больших свг иллюстраций в бандл? вес бандла же сильно увеличится, это не крохотные иконки
Dmitriy
Имеет смысл выделить отдельный бандл на svg’шки
А смысл? Потом не закодсплитишь.
Igor
А есть примеры реализации?
Вот неплохая статья на тему. На хабре вроде перевод был https://medium.com/hackernoon/the-100-correct-way-to-split-your-chunks-with-webpack-f8a9df5b7758
Igor
https://habr.com/ru/company/ruvds/blog/423483/
S
в redux лучше юзать combineReducers для сплита или делить их объединяя свойства в объекты? Юзая combineReducers я не знаю как получить стейт другого редюсера без импорта стора
S
Как то ты странно написал, юзай комбайн. Что у тебя не получается?
все нормально, я просто разбил на два редюсера и теперь хочу в другом редюсере получить стейт первого редюсера, для этого мне надо импортировать стор получается?
Anonymous
И что? У меня в сумме все svg весят 3 kB
иллюстрация и иконка — это разные вещи, у меня одна иллюстрация весит 22КБ, другая 115, другая 27 и так далее, их там много)
Sm•ok
Всем привет. Создал экшн PAGE_MOUNTED и хотелось бы это дело все красиво обработать. Планирую в mainSaga отправить парралельные запросы Кто как это делает ? Юзаю Redux Saga
Andrew
Народ использую scrollIntoView({ behavior: "smooth" }) для плавной прокрутки, как можно сделать что б прокрутка проходила еще медленее? есть какой то таймер что ли? что б задать сколько будет идти прокрутка?
Andrew
функцию написать, которая будет вычислять так, как тебе надо
а что то по проще есть? именно с scrollIntoView, мб я что то упустил