Ivan
Ебат, вам говорю что любой инструмент имеет место быть в разработке, а вы - ФСЕ ГАВНО, Я ЗНАЮ, ЩА ВЕНТИЛЯТОР ПРИНЕСУ И КААААК ВСЕ ОБОСРУ
Ты просто читать не умеешь. Или молодой ещё. Мы начали с того, что для построения веб-приложений реакт/ангуляр — стандарт, а jquery — нет. Ты вот уже час пытаешься объяснить, что jquery используется, что mercurial используется. Да, используется, молодец! Но я не об этом говорил и не это пытался тебе объяснить. Поэтому посередине и посоветовал забить.
ㄗом
ты в вызов своего handleScroll передаешь ивент ?
да el.addEventListener('scroll', this.handleScroll)
artalar
Ничосе какие люди)
Владислав
Что за таргет у скроллэвента?
ㄗом
А чё за событие слушаешь? Есть же всякие ClickEvent, MouseOverEvent....
Загружать коменты, когдла полльзователь прокрутил список вниз
Vadim
Кто-нибудь может подсказать плюсы, пользу и , вообще, мотивацию использования порталов?
Ivan
Кто-нибудь может подсказать плюсы, пользу и , вообще, мотивацию использования порталов?
Удобно прокидывать в роуты и передать с урлом новый компонент
Владислав
Модалки делать изи
Vadim
Да, забыл упомянуть, что кроме модалек, прошу простить
Ivan
Кто-нибудь может подсказать плюсы, пользу и , вообще, мотивацию использования порталов?
Плюсы — можно рендерить компоненты в произвольные ноды. Минусы — нет никаких альтернатив.
artalar
Но с порталами, конечно, удобнее - просто более декларативно.
Vadim
Спасибо
Ivan
render(document.querySelector('...'))
Забыл добавить «без потери контекста». Подловил)
Олег
Хелоу, в react-dnd есть гриды, чтобы работало как в react-sortable-hoc?(на десктопе)
Ilya
Удобно прокидывать в роуты и передать с урлом новый компонент
А можно поподробнее, что-то я не пойму причём и зачем тут порталы?
Ilya
Забыл добавить «без потери контекста». Подловил)
Ну способов "передать контекст" в основном токсичных но вполне работоспособных, с десяток знает JSер что писал код ещё в es5 :) этим его не напугать
Sayo
Ребят подскажите плз как в redux-form можно обрабатывать side-эффекты? Например при изменении одного инпута нужно выполнить ряд действий (включая изменение другого инпута из redux-form).
Андрей
Всем привет! Вопрос не совсем по Реакту, а по JS. Как мне из массива такого типа: [{ property: "name", value: "andrey"} , {property: "city", value: "moscow"}] Получить один объект с перечислением свойств? { name: 'andrey', city: "moscow" }
Looch
arr.reduce((result,item)=>({...result, [item.property]: item.value}),{})
Так кстати лучше не делать :)
Daniil
А почему?
https://www.richsnapp.com/blog/2019/06-09-reduce-spread-anti-pattern
Looch
https://www.richsnapp.com/blog/2019/06-09-reduce-spread-anti-pattern
Да из-за спреда, потому что это скрытая итерация
Андрей
Anonymous
https://www.richsnapp.com/blog/2019/06-09-reduce-spread-anti-pattern
Для его кейса норм, там даже в статье написано, что преждевременные оптимизации — зло
Ilya
arr.reduce((result,item)=>({...result, [item.property]: item.value}),{})
вообще странный подход - зачем на каждом этапе создавать новый объект - когда reduce подразумевает мутацию аккумулятора (так задумано), и он собстенно инстанцируется новым объектом как правило (это уже на совести программиста) Если ругается ESLint то не грех тут воткнуть и /* eslint-disable no-param-reassign */ или плагин к вашим услугам https://www.npmjs.com/package/eslint-plugin-no-param-reassign-allow-reduce потому как в этом случае это шиза, и вопрос уже не раз поднимался - но никакие аргументы не убедительны... сейчас еще на использование Proxy это аффектит... но воз и ныне там.
Daniil
Anonymous
не вижу проблем сразу писать без антипатерна в рамках v8
не вижу проблем сразу писать так, как написали выше
vlad
кто нибудь писал под IE11? Object doesn't support property or method 'repeat' вот такая ошибка и никуда не уходит прописал метод отдельно и все равно ничего не работает
vlad
код-то есть?
Проект большой, ошибка происходит при логине на определенных ролях прикол в том, что в проекте нигде этот метод и не используется
Looch
Проект большой, ошибка происходит при логине на определенных ролях прикол в том, что в проекте нигде этот метод и не используется
Возможна этот метод где-то юзает какая-то библиотека + у объекта нет изначально такого метода
vlad
Возможна этот метод где-то юзает какая-то библиотека + у объекта нет изначально такого метода
метод прописан отдельно и подключен к индекс.джс, если его где нибудь использовать, то он прекрасно работает
Марк
Всем привет! Я недавно перелез с Ангуляра на Реакт в работе и теперь возникают небольшие вопросы по поводу некоторых паттернов в самом реакте. Помогите разобраться - есть необходимость использовать абстрактный класс и наследование, но почитав статьи почти все говорят, что наследование лучше в Реакте не использовать в принципе. Как лучше перенести такой кейс в функциональные компоненты или лучше оставить в виде классов? Самой простой пример будет class AbstractNode { constructor() { this.id = 0; this.text = 'node'; } } class ActionNode extends AbstractNode { constructor() { super(); this.text = 'action' } }
Looch
тестил на строке
Бери лучше corejs и все, не делай сам полифиллы + возможно у тебя код который требует метод repeat запускается раньше
Марк
а реакт тут причем?
Возможно не совсем правильно сформулировал вопрос. Если использовать функциональные компоненты, то как представить такую конструкцию в принципе? Про ангуляр написал, потому что там в основном все таки используются классы, нежеди чем в реакте, где топят за функциональный подход
Daniil
а из corejs что именно брать нужно? сейчас вот так import 'core-js/stable';
Ты можешь просто 3 установить и все https://github.com/zloirock/core-js/blob/master/docs/2019-03-19-core-js-3-babel-and-a-look-into-the-future.md#what-changed-in-core-js3
Looch
а из corejs что именно брать нужно? сейчас вот так import 'core-js/stable';
Там он вроде должен быть, попробуй включить сорс мапы и посмотреть где именно валится
Марк
так не ясна цель, что сделать-то предполагается?
Реакт не советуют использовать наследование в компонентах в принципе. Как такую конструкцию с абстрактным классом представить без наследования? передавать значения через props?
Maksim
🤴👷‍♂️🦸‍♂️🧚‍♀️
Привет, а как мне в spa отдавать sitemap который генерит бэк?
🤴👷‍♂️🦸‍♂️🧚‍♀️
Maksim
А это при чем тут?
речь про файл?
🤴👷‍♂️🦸‍♂️🧚‍♀️
Maksim
Да
ну вебсервер пусть его и раздает, причем тут spa?
🤴👷‍♂️🦸‍♂️🧚‍♀️
ну вебсервер пусть его и раздает, причем тут spa?
Файлик должен лежать в папке public рядом с index.html, если не ошибаюсь
Maksim
Файлик должен лежать в папке public рядом с index.html, если не ошибаюсь
зависит от сервера, файл может вообще нигде не лежать, а генериться в любом случае spa и реакт тут явно ни при чем
🤴👷‍♂️🦸‍♂️🧚‍♀️
зависит от сервера, файл может вообще нигде не лежать, а генериться в любом случае spa и реакт тут явно ни при чем
Короче это дело сервера и мне ничего делать на фронте не надо, только маякнуть бэкам сгенерить файлик, верно?)
Павел 💻
Здравствуйте! Я обычно собирал данные с полей формы таким образом (на картинке). Подскажите пожалуйста, как мне осуществлять сбор данных с инпутов, если я использую хуки и функциональные компоненты?
Viachaslau
почитай про useState :)
Ivan
https://t.me/react_js/774025 и про useReducer тоже почитай
Oleg
я тут пытаюсь протестировать форму логина и мне выдалось сообщение выше. я правильно понимаю - jest запускает один этот файл вне контекста остальных? соответственно он думает, что роутера нет. если нет, то почему тогда эта ошибка выводится? если да, как можно запускать тесты в контексте всего приложения? нужно ли как-то скомпилировать приложение перед этим? если какие инструкции?
Ivan
я тут пытаюсь протестировать форму логина и мне выдалось сообщение выше. я правильно понимаю - jest запускает один этот файл вне контекста остальных? соответственно он думает, что роутера нет. если нет, то почему тогда эта ошибка выводится? если да, как можно запускать тесты в контексте всего приложения? нужно ли как-то скомпилировать приложение перед этим? если какие инструкции?
ну у тебя же в тесте написано «отрендерить <SignIn />», там не написано «отрендерить приложение с компонентом SignIn», у тестового движка даже возможности нет узнать, что за пределами этой формы — ты же только её рендеришь запускать тесты в контексте всего приложения не нужно — это не юнит-тестирование (для которого обычно используют jest). либо заверни тестовый рендер в инстанс роутера, либо пиши компоненты так, чтобы они не зависели от внешней среды
Ivan
последнее, я так понимаю, невозможно?
обычно последнее — главная цель в проектировании компонентов степень достижимости зависит от обстоятельств, задач и радиуса кривизны рук
Oleg
обычно последнее — главная цель в проектировании компонентов степень достижимости зависит от обстоятельств, задач и радиуса кривизны рук
я не совсем понимаю, как можно избавиться от такой зависимости как роутинг. это ведь невозможно по идее, нет?
Ivan
избавиться можно (google «dependency injection»), но не факт, что нужно ищи компромисс между полнотой покрытия тестами, заворачиванием в роутер и инъекцией
🐝 dmitriy
Если менять объект с датой не собираешься, то держать его в стейте не надо, в этом случае лучше сделать массив объектов, каждому объекту определить уникальный id и обращаться через .map или filter