Bogdan
Создавать компоненты внутри компонентов?) звучит так себе
мне нужно было дженерик в мемо кинуть, по другому я хз, видимо невозможно, дженерик абсолютно любой может быть
Bogdan
либо убирать мемо, либо вот так
Bogdan
да ну класс не буду, пока я точно не знаю что выбрать, чем плохо компонент создавать в ф-и?
TK
как называется сайт который даёт названия цветам, я в поле ввожу например цвет #f7f7f7 и сайт выдаёт название этого цвета,
Bogdan
в чем прикол мемоизировать если каждый рендер новый мемо?
нету апдейта родителя, при переходе по дочерним ссылкам
Oleg
это нормально, что autocomplete из material лагает, если пихать туда 600 options?
Андрей
const foo = () => { const Component = React.memo( foo<T>(), (prev, next) => prev.props.id === next.props.id ) return <Component /> } в таком ключе законно юзать мемо?
Нет, так как ты пересоздаёшь компонент на каждый рендер. Это вынуждает делать анмаунт старого элемента на каждый рендер.
Андрей
но я не выполняю пересчеты в ф-и getParentRoute и не запускаю createRoutes по кругу
Это сути не меняет. Новый компонент = анмаунт старого и маунт нового.
Bogdan
Это сути не меняет. Новый компонент = анмаунт старого и маунт нового.
как сути не меняет, createRoutes рекурсивно вызывается, но она же не вызовится, если родитель не проапдейтился, когда я по дочерним ссылкам хожу, да например фильтр, если родитель будет тригерится, фильтр будет скидываться
Андрей
Но с таким же успехом тебе лучше вне рендера вызвать эту функцию и использовать имеющийся там элемент.
Bogdan
Верно. Пока родительно не стриггерится - анмаунта не будет.
но как только ты нажмешь на линк дочерний, у тебя тригернется родитель, мемо не даст, например табы на роутинге, фильтр над ними
Андрей
А вообще - я серьёзно.
Bogdan
да вот кейс, есть ф-я createRoutes<contextType>(config, context) context имеет тип contextType, абсолютно что юзер захочет то и будет, я внутри должен везде, где контекст, дать ему тип не any, а его тип, если делать без мемо, все хорошо и прекрасно, но с мемо уже не выйдет, вот выше костыль был
Bogdan
Да.
тогда не useCreateRoutes, потому что роут я создаю не так, а вот так, RootMemoRoute - вынести в логику хука?
Evgeny
а почему поменял сетстейт в компоненте но теперь падает тест на это строчке(( expect(instance.setState).not.toBeCalledWith({ isButtonDisabled: false });
Michail
всем приветики может кто объяснить почему не обновляется Button component, где я делаю setState через контекст https://codesandbox.io/s/fragrant-smoke-eip8d
Michail
почему должен?
просто я подумал что он же обновляет state внутри context.js следственно все дети context должны обновится а там лежит Button
Андрей
почему должен?
Потому что родитель обновляется.
Michail
почему должен?
Или потому что там нету state в Button и он не обновляется? просто я думал тело компонента все равно обновится
Андрей
Или потому что там нету state в Button и он не обновляется? просто я думал тело компонента все равно обновится
У тебя button зависит только от SetContext. Значение в нём не обновилось, поэтому ререндера кнопки не произошло.
Michail
Андрей
Хотя всё равно не понимаю. Ререндер родителя произошёл. Какой механизм остановил ререндер детей? Нет ни memo, ни PureComponent, ни sCU своего.
Maksim
провайдер не тригерит апдейт чилдов при изменении значения контекста
Maksim
А ререндер родителя?
надо исходники смотреть, может он сам мемоизирует children
🦜
А ререндер родителя?
выше родителя только небо, у него нет тригера
Michail
удачи в дебаге
я понял спасибо) я просто как тест делал
Evgeny
не понятно что означает ошибка в этом тесте
Тимофей 🛴
не понятно что означает ошибка в этом тесте
Метод вызвался с параметрами, а не должен был
Тимофей 🛴
PH_cheerokee
😹
Андрей
Тестировать вызов setState - красиво.
Evgeny
Тестировать вызов setState - красиво.
а как его можно красивее тестировать?))
Nikita
зачем его тестировать
Андрей
а как его можно красивее тестировать?))
Не завязываться на внутреннее состояние.
Evgeny
не тестировать
а в смысле имеет смысл вообще удалить данную строчку?
Nikita
обычно когда тестят компоненты, типо прокидывают пропсыв компонент и потом смотрят по верстке что отрендерил компонент, какой результат выплюнул
🦜
а в смысле имеет смысл вообще удалить данную строчку?
сетстейт за тебя оттестировали в команде реакта
Evgeny
Зачем ты перевёл ошибку))))
а где эта ошибка? я просто смотрю не пойму где именно пишется описание
Tor
Добрый вечер. Выбираю сейчас ui kit для полностью кастомного дизайна, думаю какой взять, пока присматриваюсь к tailwind, bulma и uikit. Буду благодарен, если поделитесь мыслями и опытом
Tor
Для полностью кастомного придется писать свое
Я думал, что переопределять стили, скорее)
Tor
reakit
Работал с ним, но для этого проекта не могу его взять
Тимофей 🛴
Я думал, что переопределять стили, скорее)
Ну если будешь согласовывать внимательно требования, то может и получится. А так скорее всего будешь воевать с uiкитом чем разрабатывать
Tor
Почему не можешь?
Потому что проект не на реакте ( внезапно ) 🙂
🦜
Потому что проект не на реакте ( внезапно ) 🙂
зачем сюда тогда писать?🤦‍♂️
Tor
зачем сюда тогда писать?🤦‍♂️
Потому что вопрос был про 3 другие библиотеки, которые не привязаны к реакту
Korg
Привет всем Ребята, а есть у кого-то опыт написания тестов React + Formik + React testing library? Возникла сложность с написанием теста для компонента, который использует useFormikContext хук.
🦜
ui kit это набор компонентов в контексте реакта, а не файлик с классами
Yury
Потому что проект не на реакте ( внезапно ) 🙂
топи за реакт, а потом Reakit используй 🙃
Tor
топи за реакт, а потом Reakit используй 🙃
Я топлю за реакт и даже использую Reakit. Ладно, тем не менее, спасибо
Ph.
удачи в дебаге
Это каким плагином юзать, чтобы скорость замерить ?
Looch
никогда не используй export default () =>
Vue прям в доке так делают 🙁
🦜
Это каким плагином юзать, чтобы скорость замерить ?
девтулзы реакта Если не юзаешь, то пора