Bogdan
оо запрос в компоненте, все как я люблю
kübernarkomaan
это хуки -_-
Daren
оо запрос в компоненте, все как я люблю
а что в этом существенно плохого?
Bogdan
это хуки -_-
fetch хук у тебя?
kübernarkomaan
fetch в эффекте
Bogdan
fetch в эффекте
ну поменяют апи, побежишь в каждом компоненте менять?
kübernarkomaan
так работает
kübernarkomaan
ну поменяют апи, побежишь в каждом компоненте менять?
wot? у меня данные после первого рендера присылаются, что тебя не устраивает там?
Bogdan
так работает
ну да, я так и написал
S
Та нет, с ангуляром вообще не разу не общался. Effector это тоже стейт менеджер?
Да, 'реакт ангулярович' это vue за то что пиздит идеи
Roman
Да, 'реакт ангулярович' это vue за то что пиздит идеи
Ааа) Ну, берет лучшее. А так, просто по работе приходиться)
S
Громоздкий в каком плане?
Редюсеры, action creators и производные в три папки надо хранить, мне кажется перебор
Sm•ok
Ну, а так да. Бойлерплейта много
Dmitry
Гайз, есть вопрос по перехвату скролла мышкой. У меня приложение, состоящее из единственного компонента - echarts, мышью там делается zoom in/out. Приложение встраивается через iframe в страницу на тильде. Вместе с зумом на визуализации скроллится страница. Можно как-нибудь не выпускать наружу из iframe событие скролла?
Dmitry
я пытался на body ловить onscoll и вот это делать....
Dmitry
посмотрим... я просто на body нацепил, потому что по идее propagation должен и через него проходить тоже.
Artem
Подскажите плиз в чем может быть проблема? ./src/pages/Auth/index.js Attempted import error: 'LoginContainer' is not exported from './../../containers/LoginContainer'. //LoginContainer import { connect } from 'react-redux' import { logIn } from '../actions/LoginActions' import Login from '../components/Login' const mapStateToProps = state => ({ errorMsg: state.session.errorMsg, }) const mapDispatchToProps = dispatch => ({ logIn: (email, password, cb) => dispatch(logIn(email, password, cb)), }) export default connect(mapStateToProps, mapDispatchToProps)(Login)
Artem
Да, вытащил файл из папки и забыл исправить путь, спасибо)
Artem
Хотя все равно не работает, в консоли без ошибок выводит, страница загружается, но через несколько секунд снова эта же ошибка
Artem
объект
Artem
тоже самое
Artem
вот что возвращает
Anonymous
Ребят, подскажите у меня фильтр заказов построен на хистори локейшен в reselect добавляю пропс обьекта, но заказы перерисовывются, хотя не должны
Anonymous
Artem
Что за ./ у тебя там? Не из-за этого?
./../../containers/LoginContainer тут?
BARSOOQUE
Да
BARSOOQUE
Мб опечатка в импорте
Artem
Убрал, все равно Attempted import error: 'LoginContainer' is not exported from '../../containers/LoginContainer'.
Artem
но из компонентов тоже так импорт идет и работает
Artem
все, всем спасибо, почти в этом был косяк)
Anonymous
Ребят, подскажите у меня фильтр заказов построен на хистори локейшен в reselect добавляю пропс обьекта, но заказы перерисовывются, хотя не должны
Anonymous
Nikita
Сначала подумал, это фото распечатанного кода...
Александр
Распечатанный скриншот фотографии экрана телефона
arts
Надо было фотку распечатать, отсканировать, засунуть в *.doc и на яндекс диск выложить
Александр
Запаковать в rar
arts
Как я мог забыть про это
Anonymous
Реально ли закешировать с помощью reselect переданный через ownprops mapstatetoprops history.location ?
Anonymous
Фильтр заказов построен без редакса, через гет параметры
Anonymous
А зачем, можно узнать?
Александр
не могут уже, я хз, там короче отчет может и 5 мин и 10 формироваться
Для долгих задач бек должен не держать соединение в ожидании окончания, а либо ставить долгоиграющую задачу в очередь или запускать ее асинхронно, и возвращать токен соотвествующий задаче мгновенно. По этому токену можно к беку ходить и смотреть статус завершения задачи. Это один из вариантов.
Александр
пинаем бекендщиков, чтоб оптимизировали свое говно
А иногда говно не оптимизировать до такого уровня чтобы оно с приемлемыми таймингами отвечало в реалтайме, тогда можно поступить как смотри выше сообщение.
Mikhail
А иногда говно не оптимизировать до такого уровня чтобы оно с приемлемыми таймингами отвечало в реалтайме, тогда можно поступить как смотри выше сообщение.
Ага, я как-то переписал таску, которая выполнялась 25 часов, после оптимизаций получилось примерно 10 секунд
Александр
а если юзер психонет с пару десятков раз запросит это счастье?
Нужно формировать некий отпечаток задачи, скажем хеш от входных данных в примитивном варианте, и Бекенд гайс проверяли если есть такая задача в стадии выполнения то вернуть ее статус, иначе запустить на выполнение
Александр
Ага, я как-то переписал таску, которая выполнялась 25 часов, после оптимизаций получилось примерно 10 секунд
Все бывает, я не говорю о конкретном быдлокоде, бывает что действительно надо время
Александр
И не такое делалось. Но не всегда это возможно
Иногда сам характер задачи подразумевает протяженность во времени, тут уже никак не оптимизируешь.
Илья
Никто не подскажет, что надо поставить в eslintrc чтобы в кастомных хуках не подсвечивался React как ’React' is defined but never used ?
Илья
Что-то не могу никак вспомнить, а в гугле ответ ускользает от меня…
Александр
React в скопе надо только если jsx юзается
Александр
Про очередь непонятно. С точки зрения фронтэнда это и есть асинхронность
Эм, про очередь это действителено ко бекенду, с точки зрения фронта должен вернутся уникальный идентификатор задачи, используя который можно проверять ее статус
VovaN
Ну, просто было сказанно очередь ИЛИ асинхронность. В обоих случаях это асинхронные запросы по токену (id)
Илья
А зачем его импортить в файле где только хуки
Вот блин я “Вася”… Сам не понял, что бред написал. Спасибо.
Александр
очередь fifo
Да не суть, как оно там работает. Я к тому что бекенд не должен длительные вычисления синхронно в обработке реквеста делать. А должен либо форкнуть воркера либо поставит задачу в очередь и вернуть ее идентификатор по которому можно периодически проверять ее статус
Александр
Вот блин я “Вася”… Сам не понял, что бред написал. Спасибо.
Не понял ... это к моему ответу возражение?
Илья
Не понял ... это к моему ответу возражение?
Спите уже в “одном сапоге”?))) Я про себя.
Александр
Спите уже в “одном сапоге”?))) Я про себя.
Я кажись выпал из дискуссии, сапоги пошли... пятница всё-таки
Александр
Про очередь непонятно. С точки зрения фронтэнда это и есть асинхронность
Это и есть асинхронность с точки зрения фронтенда... да
Александр
Про очередь непонятно. С точки зрения фронтэнда это и есть асинхронность
Про очередь, как делал я. Есть скажем сервер с rest api для формирования отчетов в pdf. При запросе формирования отчета за период, формируем уникальный ключ для задачи, скажем хеш от строкового преставления даты начала и даты конца периода и кладём в redis (для примера) по этому ключу данные о задаче. При повторном запросе если такой ключ был в redis, то возвращаем то что там лежит (а именно данные о задаче и о ее статусе выполнения). Отдельно вертится процесс который из redis получает новые задачи и берет их на выполнение, помечтает их статус как в процессе выполнения и делает работу, по ошибке или успехе опять же меняет статус. Фронтенд же все это время имея идентификатор задачи периодически делает polling статуса задачи, и говорит типа задачу ещё никто не взял или она в процессе или она зафейлилась или она успешно завершилась.
Александр
За место редиса тут может быть использовано почти что угодно, начиная от ibm mq очередью и заканчивая просто базой данных типа mysql или key-value хранилищем типа memcached, или разделяемой памяти процесса даже.
VovaN
Про очередь, как делал я. Есть скажем сервер с rest api для формирования отчетов в pdf. При запросе формирования отчета за период, формируем уникальный ключ для задачи, скажем хеш от строкового преставления даты начала и даты конца периода и кладём в redis (для примера) по этому ключу данные о задаче. При повторном запросе если такой ключ был в redis, то возвращаем то что там лежит (а именно данные о задаче и о ее статусе выполнения). Отдельно вертится процесс который из redis получает новые задачи и берет их на выполнение, помечтает их статус как в процессе выполнения и делает работу, по ошибке или успехе опять же меняет статус. Фронтенд же все это время имея идентификатор задачи периодически делает polling статуса задачи, и говорит типа задачу ещё никто не взял или она в процессе или она зафейлилась или она успешно завершилась.
Я так и понял. Спасибо за подробность 😉
Александр
Ну почему сразу удалится, зависит от реализации. Иногда то что задача пропадёт если сервер ляжет не самый плохой вариант
Александр
Да я не про детали реализации же на беке, я скорее про то как это с фронта должно видится
Александр
Зря я стал про бек, это не имеет по сути отношения к исходному вопросу
Виктория U
Что такое хотяба? Простите.
Виктория U
В коромысле. Да, вы в верном направлении думаете) Только не злитесь😊