Alexandr
да, туплю совсем
Ivan
Привет, подскажите пожалуйста, почему после вызова onLockTimeButtonClick вылетает ошибка lockTimeButtons.map is not a function?
ошибка в том, что внутрь onLockTimeButtonClick вы передаёте 4 аргумента: три объекта и массив (корявый) функция принимает только первый аргумент и устанавливает в state объект у которого нет метода .map
voix
что-то можно с этим сделать? или только useReducer?
Напиши console.log хотя бы. Посмотри что ты передаешь и попробуй понять, что с этим сделать. Решение очень простое, но лучше найди его сам.
Evgen
Вообще нет
Там в кавычках.
artalar
Там в кавычках.
Зачем вообще такое писать
Ivan
но не нужно так делать, огребёте потом проблем берите useReducer
Ivan
спасибо
и да, @voix2ciel правильно написал разберитесь, что было не так и что теперь так иначе станете формошлёпом
Evgeny
и в какой-то момент они все станут активными=)
Ivan
и в какой-то момент они все станут активными=)
ну там, наверное, где-то рядом будет обработчик для кнопок дезактивации)
Evgen
Зачем вообще такое писать
Спред работает над итерируемыми объектами, соответственно при спреде грубо говоря выполняется for. Или есть какое-то другое определение в спецификации(я не вникал глубоко)?
Ivan
формошлепом тоже быть не просто
а кто-то говорит о простоте?
artalar
Спред работает над итерируемыми объектами, соответственно при спреде грубо говоря выполняется for. Или есть какое-то другое определение в спецификации(я не вникал глубоко)?
Нет. for - это while и взятие свойства по динамическому совйству (индексу). А спред и for of работают с итератором объекта, что есть отдельный метод с совершенно другим интерфейсом. В теории работа с итератором должна быть заметно медленнее, хотя современные движки это оптимизируют.
Sergey
.
artalar
Ну вот на практике это на столько разные вещи, что ковычек не достаточно)
Evgen
Ну вот на практике это на столько разные вещи, что ковычек не достаточно)
Хорошо, будем считать что допустил не точность в своем комментарии )
D
Не совсем понимаю как в ССР идет перерендер страницы при смены локации юзером. Как я понимаю на каждый переход по странице сервером генерируется новый стейт и записывается в window откуда он достается клиентом. Но не со всем понятно, например, что если там что-то юзер поменял или еще что-нибудь, как отдавать текущий стрейт. Или же генерация начального стейта и отрисовка приложения происходит только при первичном посещении сайта а дальше все хендлит клиент? Говорю о стартер ките из статьи про ssr на expressjs вот код https://github.com/yantsishko/ssr-demo-expressjs
D
ясно, спасибо
Art
Ребят, подскажите, пожалуйста Как в интерфейсе пропсов указать отрендеренный компонент? То есть: interface IProps { icon?: Icon; } class Test extends React.Component<IProps> { ... } ... render() { const icon = (<Icon />) return ( // ошибка, т.к. icon - React.Node, а я в пропсах указал класс Icon <Test icon={icon} /> ) }
Art
Element
пример, плз. Не понял
Богдан
У меня ничего не тормозит. Я ACMщик и хочу понимать с чем работаю
Тогда берем ноду, запускаем скрипт с флагами —print-opt-code и —code-comments и изучаем ассемблерный код в который будет скомпилирован js. Вот например почему лучше не юзать наследование в js когда количество сабклассов больше 4 Есть такой бенчмарк class Animal { constructor() { this.done = 0 } doIt() { this.done++ } } class Cat extends Animal { } class Dog extends Animal { } class Monkey extends Animal { } class Bird extends Animal { } class Bear extends Animal { } function testAnimals(animals) { for (let i = 0; i < animals.length; i++) { for (let j = 0; j < 100000; j++) { animals[i].doIt(); } } } setInterval(() => { const cat = new Cat(); const dog = new Dog(); const monkey = new Monkey(); const bird = new Bird(); const bear = new Bear(); const time = Date.now(); testAnimals([cat, dog, monkey, bird, bear]); console.log(Date.now() - time, cat.done, dog.done, monkey.done, bird.done, bear.done); }, 1000); Где мы создаем 5 сабклассов класса Animal и тестируем время работы икремента свойства на базовом классе Получаем цифры примерно 23 100000 100000 100000 100000 100000 24 100000 100000 100000 100000 100000 24 100000 100000 100000 100000 100000 25 100000 100000 100000 100000 100000 23 100000 100000 100000 100000 100000 Но если мы уберем один сабкласс (заменим объект bear на объект bird2, то есть количество операций не меняется) //const bear = new Bear(); const bird2 = new Bird(); const time = Date.now(); testAnimals([cat, dog, monkey, bird, /* bear */ bird2]); console.log(Date.now() - time, cat.done, dog.done, monkey.done, bird.done, /* bear.done */ bird2.done); То мы уже получим такие цифры (почти в 10 раз быстрее) 3 100000 100000 100000 100000 100000 3 100000 100000 100000 100000 100000 3 100000 100000 100000 100000 100000 3 100000 100000 100000 100000 100000 Чем это объясняется? Достаточно взглянуть на ассемблерный вывод (если запустить этот скрипт с флагами --print-opt-code и --code-comments) В первом случае мы видим что в ассемблере есть инструкции call c вызовом рантайм функций LoadIC_Megamorphic и StoreIC а во втором случае этих call-инструкций вообще нет то есть инкремент свойства заинлайнился прямо в ассемблер. В связи с этим делаем вывод что v8 не умеет в true-наследование (как это умеет делать c++ через v-table) а просто харкодит скрытые классы наследников и как только их становится больше 4-х то он компилирует в медленный дженерик код все обращения к полям базового класса
Тимофей 🛴
пример, плз. Не понял
JSX.Element или React.ReactElement
Art
Спасибо всем за ответы 🙏
Oleg
Вопрос по бандлеру. Ребят, использовали Parcel для дальнейшей натяжки фронта на Wordpress. Но Parcel возвращает в dist кучу файлов, нам нужно на выходе 1 js, 1 html и 1 файл стилей. И чтобы все было не минифицировано. Никто не знает есть ли возможность настраивать то, что будет уходить в dist? Плюс Parcel еще задает хэш именам файлов картинок, это нам тоже не нужно. + в Dist уходят map файлы, которые по идее нафиг не нужны там)
Василий
Привет. Необходимо делать приложение для платежного терминала. Это будет какое-то количество разных приложений, реализующих финансовую услугу - например оплатить телефон, купить еОсаго. Какой менеджер состояний выгодно использовать? Каждое приложение сравнительно простое - по сути это набор шагов мастера. моржет чистый state да не мучаться ?
Василий
:) жить проще всегда лучше
Василий
пока надо понять что хочется - по идее достаточно сформировать описание услуги, которое ввел пользователь, да и все
Alexey
ну исходя из опыта пользования такими терминалами, стейт точно не нужен. Приняли ввод, отправили, сбросили, приняли => отправили => сбросили
Alexey
блин, не дописал "стейт менеджера"
Василий
по моему состояние потребуется вот оплатить телефон 1. запросил номер 2. запросил сумму все разные шаги мастера все что ввел пользователь надо хранить
Mishka
Всем привет! А как можно сохранить состояние формы при ререндрере компонента ? Мне надо чтобы инпуты остались заполнеными если переключаешься со страницы на страницу и обратно
Mishka
state-manager :)
в redux все писать ?
Yury
тут модно говорить слово “эффектор”
Alexey
можешь и туда, можешь и контекст заюзать
Mishka
а через memo никак ?
Alexey
если только ты собрался хранить форму в родительском компоненте, в стейте, над работой роутера.
Alexey
но думаю не для таких моментов memo задумывался.
L
Hi can I ask something
L
I have page/component that consist of form for searching job, below it I put another component that show the result
Bogdan
у реакт таблици обновляю пропс data, массив приходит новый, но таблица не апдейтится, была у кого такая проблема?
L
I successfully pass data from form to result component, and show the result. I used componentDidMount. But it only work for first time search
Виктор
Hi can I ask something
https://thedevs.network/
L
I think that because the first time search means that init state -> render -> compDidMount -> state change -> render. And that not works for second search and so on
Oleg
есть ли какой-то адекватный способ сделать следующее: есть список элементов. на ховер появляется блок с кнопками в углу. проблема: есть чайлд с классом из jss от материала (динамическим). мне нужно врапперу указать что-то вроде '& > myDinamicClass': { opacity: 1 } как мне это сделать? я могу попробовать задать статический класс ребёнку, чтоб иметь возможность так записать. это хоть и решение, но некрасивое. есть у кого идеи как это реализовать по бест практисам?
L
Yes I try that cDU but it makes infinite loop because I need to change the state inside it (?)
L
Btw I pass data from form to the component by props
Василий
кто как вопрос со скинами решал? у меня скин состоит из настройки шрифтов , цветов фоновых картинок. по идее нужен какой то препроцессор + css модули что ли ?
Артем
ребята,подскажите,с помошью чего лучше работать с гугл картами? с их аппи или же есть уже готовое типо google maps react. И подскажите какие лучше
Василий
надо работать с яндексом :)
Артем
MⅨ
вопрос если я перерендериваю родителя то у меня все чайлды перерендериваются?