Павел
Парни приветствую, вчера решали задачу как из приложения открыть новую страницу, но в ней открыть не корневую app, а что то другое лежащее по коду выше или рядом, пока только через роут в index.ts придумали, может как-то ещё можно?
Anonymous
Привет можете помочь в React есть кнопка клик на любой точки экрана при клике я получаю div внутри class как я могу получить только буквы из class ? Мне нужно получить слова frame
Anonymous
Ilya
\
Василий
что то понимать уже перестал - если для загрузки ts babel использую - пакет typescript уже и устанавливать ни к чему? ts классы успешно преобразовываются
Ivan
Ssr пока нет, но это приведет к увеличению времени оживления - придется сделать несколько запросов за данными
1. Можно докрутить апишку, чтобы получать все минимальным количеством запросов 2. Можно рендерить по частям
Michail
всем привет У меня есть тема, и чтобы ее менять я ее запихнул в React Context, и дело в том что я сделать обертку провайдера над главным App, и в контексте у меня есть State с isSidebarOpened и как раз этой темой, и когда я toggleSidebar у меня идет обновление всего аппа, не кто не знает как сделать, чтобы обновление делать только если тема изменилась? И сорян за контекст)
Konstantin
И не мешать с другими состояниями
Michail
Тему вынести в themeprovider не?
У меня она и так в themeprovider от material ui
Mikhail
прошу прощения, вопрос глупый и длинный Понаписал кучу логики, обернул всё в несколько классов и интерфейсов (ts), вроде бы всё хорошо работает Начал писать фронт для этого (на реакте), и понял, что дёргая методы написанных ранее классов, реакт-компонент обновляться не будет (он то и понятно, он тупо не видит изменения данных внутри класса, а они там достаточно глубоко) И вот тут я задумался а как вообще делать - методы класса вынести за его пределы перенести в какой-то родительский реакт-компонент и контекстом спускать вместе с данными (которые тоже придётся вынести из класса)? получается что и классы с логикой писать не надо было Собственно вопрос в том, как вообще надо делать, с одной стороны хочется оставить классы как некую модель, с другой стороны не хочется писать костыли, чтобы при вызове методов как-то принудительно обновлять компонент
Michail
Тему вынести в themeprovider не?
А как менять её? Все равно же надо будет юзать контекст чтобы везде поменять цвет
Саша
Привет
voix
прошу прощения, вопрос глупый и длинный Понаписал кучу логики, обернул всё в несколько классов и интерфейсов (ts), вроде бы всё хорошо работает Начал писать фронт для этого (на реакте), и понял, что дёргая методы написанных ранее классов, реакт-компонент обновляться не будет (он то и понятно, он тупо не видит изменения данных внутри класса, а они там достаточно глубоко) И вот тут я задумался а как вообще делать - методы класса вынести за его пределы перенести в какой-то родительский реакт-компонент и контекстом спускать вместе с данными (которые тоже придётся вынести из класса)? получается что и классы с логикой писать не надо было Собственно вопрос в том, как вообще надо делать, с одной стороны хочется оставить классы как некую модель, с другой стороны не хочется писать костыли, чтобы при вызове методов как-то принудительно обновлять компонент
У тебя стейт приложения хранится в отдельных классах и ты хочешь добавить реактивности к этому?
Dimitri
да, можно и так сказать
посмотри в сторону кастомных хуков и useReducer
voix
да, можно и так сказать
То есть тебе надо, чтобы если из-за какого-то метода в классе мутировался его стейт, актуальный стейт обновился сам везде, где используется?
Mikhail
То есть тебе надо, чтобы если из-за какого-то метода в классе мутировался его стейт, актуальный стейт обновился сам везде, где используется?
да по сути почти все методы это та или иная мутация стейта в классе хотелось бы чтобы реакт-компоненты смогли это увидеть и обновиться
voix
да по сути почти все методы это та или иная мутация стейта в классе хотелось бы чтобы реакт-компоненты смогли это увидеть и обновиться
Если ты не хочешь брать стейт менеджер вместо классов, то надо хотя бы реализовать обсервер паттерн. Например, взять rxjs.
Mikhail
казалось, что возможно есть решение попроще
voix
казалось, что возможно есть решение попроще
Только если возьмешь rxjs, помни главное - всегда отписывайся! 😊
Valentin
прошу прощения, вопрос глупый и длинный Понаписал кучу логики, обернул всё в несколько классов и интерфейсов (ts), вроде бы всё хорошо работает Начал писать фронт для этого (на реакте), и понял, что дёргая методы написанных ранее классов, реакт-компонент обновляться не будет (он то и понятно, он тупо не видит изменения данных внутри класса, а они там достаточно глубоко) И вот тут я задумался а как вообще делать - методы класса вынести за его пределы перенести в какой-то родительский реакт-компонент и контекстом спускать вместе с данными (которые тоже придётся вынести из класса)? получается что и классы с логикой писать не надо было Собственно вопрос в том, как вообще надо делать, с одной стороны хочется оставить классы как некую модель, с другой стороны не хочется писать костыли, чтобы при вызове методов как-то принудительно обновлять компонент
MobX?
Anonymous
Приветствую. В приложении есть 2 выпадашки для назначения двух параметров сортировки. const [sortby, setSortby] = useState('unsorted'); const [order, setOrder] = useState('unsorted'); Как сделать, чтобы при выборе unselected на одной выпадашке, то же отображалось на другой? Значения на стейте приложения меняю в соотвтетсвующих выпадашкам onChange методах, полный код на https://pastebin.com/Xic4Xc2D.
Yury
if(value === ‘unsorted’) { setSortby(‘unsorted’) setOrder(‘unsorted’) } почему так просто не сделать?
Екатерина
а зачем делать private?
Чтобы тс по максимуму использовать Оно по сути и есть private
Ivan
Чтобы тс по максимуму использовать Оно по сути и есть private
На самом деле приватность и публичность методов в классе-компоненте — забавный атавизм мышления (это не оскорбление). Методы компонента не вызывает никто, кроме реакта. Те, что публичные, не могут быть приватными — тс упадёт. А те, что приватные — всё равно никто снаружи вызывать не будет — вызывать некому.
Philipp
Хм, Катя Маслова, это же из Воскресение Л.Н. Толстого? И вопрос, ребята, кто-нибудь пробовал на бэк ASP.Net Core 2 WebApi с подключенным MessagePack отправить через fetch() запрос POST с body - JSON.stringify(myJSObject)? Как вы обходили проблемы декодирования MessagePack? Я попробовал упаковать на фронте не через JSON.stringify(), а через msgpack-light. Бэк все-равно ругается...
Ivan
видал я, как в реф совали компонент и дёргали его методы
А я видал, как «о, мне бы вот этот метод вызвать снаружи, но он приватный... хм... оп, теперь он публичный!»
shashkov0
У меня с бэка приходят новости html строкой, я эту строку показываю через dangerouslyHTML, сейчас пришло требование, что видео которые приходят в html строке, должны показываться в модалках. Как можно безболезненно провести такую операцию: - Взять html строку <div><p>text</p><iframe></div> - Найти там iframe и заменить его на реакт компонент <Video /> - В результате должно получиться следующее: <div><p>text</p><Video /></div>
Ilya
regex + dangerouslySetInnerHTML ?
GoDenis
господа, в getDerivedStateFromProps(nextProps, prevState) хочу обработать prevState, возникает ошибка Unhandled Rejection (Error): A cross-origin error was thrown
GoDenis
когда обрабатываю nextProps - все ок
GoDenis
в голос с ника
чем бы дитя не тешилось, лишь бы не плакало.
Philipp
Эм, а зачем json раз у вас msgpack? Шлите сразу бинарные сообщения в body запроса
Я отсылаю сериализованный с помощью msgpack-light объект.
Александр
В чем проблема декодировать, со стороны клиента делаете response.blob() и получаете Blob с сообщением и далее уже чем вам удобнее декодируете
Александр
Я отсылаю сериализованный с помощью msgpack-light объект.
Увы с этой либой дела не имел, надо бы к доке обратиться
Oleg
Ребят какой флоу работы с Reshadow? как я понял , для каждого тега нужно делать отдельно свой styled компонент. Я хочу отделить логику от визуала. И если у меня например карточка с товаром внутри которой ряд Дивов и инлайн элементов, мне нужно каждый элемент стилизовать в отдельном файле и подключать? Есть другой вариант? До этого я просто работал только с css модулями. Просто если у меня много h2 с разными стилями в разных местах, мне нужно миллион файлов создавать с разными вариантами h2?
Bogdan
@artalar привет, ты вот не заюзал аполо клиент, заменив его на graphql-request, а кроме меньшего размера, ведь какие приемущества? я так посмотрел, что их вроде и нету
Oleg
@reshadow
Спасибо
Bogdan
А мне кроме генерации типов от gql больше и не нужно ничего.Я кешами через СТМ управляю
но тогда ты берешь на себя много лишнего, а например аполо батчит запросы, ты и этого себя лишаешь посути
Oleg
Спс
Sergey
По мне это как раз плохо
artalar
Что именно?
artalar
Мы, кстати, думаем на css файлы пересесть
Sergey
1. В списке тегов нет header, а в стилях есть 2. Для элементов устанавливается что-то кроме позиции и отступов
Sergey
1. не, ты не заметил видимо
Да. Прошу простить
artalar
Ну и конечно rest props
Это апишка reakit такая. Меньшая из зол, я бы сказал
Sergey
Хотя все остальное, что я написал, это больше рекомендация, чем 100% зло
Sergey
Установка стилей цветов и прочего может сломать компонент, если изнутри он ставит свои стили, которые несовместимы с установленными снаружи
Sergey
То есть лучше все таки отдельно каждому компоненту стили задавать?
Да. Контейнер должен контролировать только позиции и например grid опции всякие
Sergey
То есть лучше все таки отдельно каждому компоненту стили задавать?
А если в компоненте только HTML теги, то там можно стилизовать как хочется, ибо это детали реализации именно этого компонента
Паша
Гайз, общий вопрос. Есть конфиги еслинта, как настроить prettier на точно такое же форматирование
Oruj
почему только через ".id" деструктурируется?)
Sergey
а наоборот нельзя?
Нет. Это правильный путь