Иван
не, мне просто надо сохранить текст с нормальным форматированием, а то обычное копирование в хроме копирует и стили
Ilia
Ребят,не могу определиться со стилями.Что лучше styled component или module, или когда какие использовать?
Oleg
хм... я что-то явно делаю не так. что это за объект в draftData? делаю, как в доке.
Иван
куда? в файл?
ну либо в файл, либо сразу в печать отправлять, как вообще можно без бэка?
Anonymous
ну либо в файл, либо сразу в печать отправлять, как вообще можно без бэка?
в файл нельзя, если только сделать так как будто это загрузка файла
Артем
const handleCheckboxChange = event => { event.target.name - имя чека event.target.checked - чекнут или нет this.setState({[name]:checked}) } Далее всем чекам вешаешь name и один и тот же вот этот обработчик
я ж правильно понимаю,что если у меня в state что-то типо такого: task_options:{ like_users_post: false, watch_stories: false, dont_follow_on_private : false, auto_unfollow : false } то setState будет this.setState({task_oprions:{[name]:checked}})
Sem
Ребят, помогите плиз. Такой кейс - есть circle progress на svg, который реакт компонент(функциональный). Есть ивенты по сокетам по которым он останавливается и запускается. Так вот проблема в том, что если ивенты приходят чаще чем раз в 12мс, то компонент игнорит обновления(скорее всего из-за батч апдейта). Ивенты не постоянно приходят с такой скоростью, но бывает просто подряд 2 ивента(стоп и старт) и обновление не происходит. По ивенту старт я запускаю анимацию, а по ивенту стоп останавливаю(или сбрасываю в конечное состояние). Может кто знает, как разрулить ситуацию?
Sem
а что дебаунс решит?
Sem
у меня разные ивенты
Ivan
у меня разные ивенты
Ну слушай оба ивента одним обработчиком с debounce внутри
Philipp
Сохраняй эвенты в стек, удаляй уже вызванные. Не вызванные сам триггери через дебаунс
Nazarii
Всем привет, впервые пишу сюда, решил cделать нормальную валидацию масива, который приходит через пропс. Масив или пустой или содержит обьекты, которые можно описать шейпом. Моя безуспешная попытка выглядит примерно вот так: blocks: PropTypes.oneOf([ PropTypes.arrayOf(shape({ boxType: PropTypes.oneOf(['text', 'image']).isRequired, content: PropTypes.string, id: PropTypes.number.isRequired, })), [], ]).isRequired, понял, что безуспешная по ворнингу в консоле, который выглядит вот так: Warning: Failed prop type: Invalid prop `blocks` of value `` supplied to `ArticleContent`, expected one of [null,[]]. Буду рад, если направите куда нужно или поможете)
Vitaliy
Ребят подскажите пожалуйста после изучения реакт базы на https://ru.reactjs.org/ стоит смотреть еще какойто материал типа книги к примеру https://www.yakaboo.ua/react-i-redux-funkcional-naja-veb-razrabotka.html?gclid=EAIaIQobChMIw-T4gYaA5QIVGeaaCh067w12EAQYASABEgIGL_D_BwE будет ли в ней более глубоко рассматриватся реакт примеры всякие интересные и т/д/?
Денис
Всем привет, существует ли библиотека для определения страны по ean (штрих-коду)?
A
Может кто-нибудь использовал recharts? у <Scatter /> есть свойство shape, которое отвечает на точки графика и туда можно передавать кастомные функции, может как-то можно отображать кастомную точку только у последней?
Philipp
Может кто-нибудь использовал recharts? у <Scatter /> есть свойство shape, которое отвечает на точки графика и туда можно передавать кастомные функции, может как-то можно отображать кастомную точку только у последней?
Туда вроде передается объект из которого эта точка построена, если так что просто найди на последний. Или индекс должен приходить, тогда смотри на длину исходного массива
Oleg
а что лучше? и вообще, immer хорош или immutableJs лучше? стоит ли вообще брать библитеку или "let a = deepCopy() и погнали"?
Sergey
а что лучше? и вообще, immer хорош или immutableJs лучше? стоит ли вообще брать библитеку или "let a = deepCopy() и погнали"?
от кейса зависит. но я не втыкался ни разу в дикую необходимость immer/ immutable просто декомпозирую и нормальзую и нормально
🦜
от кейса зависит. но я не втыкался ни разу в дикую необходимость immer/ immutable просто декомпозирую и нормальзую и нормально
это чтобы у тебя "оптимизации" были при сравнении ссылок на объекты при использовании селекторов🤣🤣🤣🤣
Oleg
от кейса зависит. но я не втыкался ни разу в дикую необходимость immer/ immutable просто декомпозирую и нормальзую и нормально
то есть, библиотеки не нужны? а что значит "нормализую"? не совсем понимаю, как это относится к редьюсерам.
Victor
Как замокать useState(), чтобы в тесте он initialValue другое выдавал? true, например
Sergey
Как замокать useState(), чтобы в тесте он initialValue другое выдавал? true, например
да когда уже перестанете использовать export default для всего господе
Sergey
Как замокать useState(), чтобы в тесте он initialValue другое выдавал? true, например
научитесь уже тестить компоненты как черный ящик. тесты не должны ничего знать обо внутреннем устройстве компонента
Sergey
мокать внутренний стейт — дичайший антипаттерн
Oleg
сами данные храню так, чтобы все эти манипуляции были не нужны
то есть, у тебя данные в ширь растут? у меня просто есть списов филдов -> если объект грид -> size -> row index -> col index -> myProp = new data.
Victor
осталось про белую тему в редакторе что-нибудь сказать и, можно сказать, помогли ))
Sergey
ты можешь заниматься херней
Victor
а если классовый компонент и можно залезть в инстанс и поменять стейт? я всего лишь хочу такую же возможность, мне плевать на "практики" в этом конкретном вопросе.
Victor
какой ты токсичный, жуть
Sergey
какой ты токсичный, жуть
экосистема дает тебе нормальные инструменты и практики, которые упрощают жизнь ты сам себе жизнь усложняешь ну так делай это тихо в своем уголке, чтобы другие не брали с тебя пример
🦜
какой ты токсичный, жуть
так он правильно говорит, не хочешь через тропинку, ебись через болото
Victor
не могу представить, зачем.
например, setValue() вызывается путем слишком большого числа кликов по кнопкам и прочее, не хочу повторять все эти действия в тесте
Sergey
который тестирует Реакт, а не твой компонент
Андрей
например, setValue() вызывается путем слишком большого числа кликов по кнопкам и прочее, не хочу повторять все эти действия в тесте
Сделай из компонента стейтмашину и проверяй конкретный стейт. Не нужно делать костыли там, где их не требуется делать.
Ivan
Кто знает как загрузить, а потом динамически получить svg. Такой вариант не проходит: const Logo = await import( svg-react-loader!../../../assets/icons/${name}.svg );
Victor
так а... зачем тебе для этого заменять инитиан стейт?
потому что надо проверить, что при value == true, действительно будет "true" текст
Sergey
тестируй клики и результат рендера
Sergey
а не то по каким условиям оно там внутри работает
Sergey
тестируй ЧЕРНЫЙ ЯЩИК ты имеешь только вход и выход
I
и тест внезапно становится АБСОЛЮТНО бесполезным
Правильно ли я понимаю, что на фронте есть смысл отказаться от юнит-тестов совсем и перейти к функциональным и энд-ту-энд?
Sergey
например библиотечный код, хуки, хоки, всё это можно покрыть юнитами
Sergey
ну и библиотеку компонентов тоже можно. частично
Oleg
а как подключить immutable js в редьюсер? нужно инитиал стейт передать такой, да? просто редьюсер жалуется
Oleg
Sergey
ну значит ты вернул undefined вместо значения
Sergey
натыкай debugger; или console.log или точек останова
Oleg
ну значит ты вернул undefined вместо значения
ну я вижу, но если передать простой объект - всё ок. и чем плох дебаггер? но в данном случае его нет.
Oleg
Плох?
а, НАтыкай. сорь.
🦜
вопрос, как ты прочитал
Ivan
чот треш
Есть решение - предложи. Нет - не комментируй и не засоряй чат.
Oleg
Sergey
Убери лоадер в настройки вебпака
Там можно же с помощью test для разных директорий использовать разные лоадеры
Sergey
ну... это довольно странно.
Смотри что возвращает fromjs и что в реальности попадает в редюссер
A
Туда вроде передается объект из которого эта точка построена, если так что просто найди на последний. Или индекс должен приходить, тогда смотри на длину исходного массива
Да, в целом ты был прав, спасибо Осталась только проблема с cx,cy Ибо их можно использовать только с svg, а мне нужно передать значение в точку(и спан из-за свг я использовать не могу0 и пока это большой вопрос