Bogdan
короче весь смысл в том, что есть перерендер, текущая статья ловится, а стейт формика не обновляется
Bogdan
хотя в ридакс форм если кидать начальный стейт, то он подхватит новый
Vlad
Есть норм аналоги? Ссылка: https://www.npmjs.com/package/react-responsive-carousel
Bogdan
хотя в ридакс форм если кидать начальный стейт, то он подхватит новый
Типо если сделать форму модалкой например, поидее прокатит, и по клику передавать текущую статью, но тут не модалка а страница и вот не понятно как делать лучше
Andrei
кто знает, что CRA юзает для импорта SVG как ReactComponent?
Andrey
кто знает, что CRA юзает для импорта SVG как ReactComponent?
https://github.com/facebook/create-react-app/blob/master/packages/react-scripts/config/webpack.config.js#L385
Andrei
спасиб) @itsjohncena
Danil
А где нужно делать ajax запросы в приложении на react, когда прилетает евент от юзера
Danil
Внутри редусеров
Danil
Или в компоненте
Anonymous
Внутри action creator
MVD
А где нужно делать ajax запросы в приложении на react, когда прилетает евент от юзера
Внутри компонента пишешь fetch() fetch().then(data => { this.state = data; this.forceUpdate(); })
rovnyart
а еще лучше читаешь про принципы SOLID и не пишешь fetch внутри компонента никогда) а изолируешь слой получения данных в какой-нибудь дата провайдер, и в компоненте в зависимости от того, какой подход используется в приложении, получаешь нужные методы через пропсы/хуки
MVD
Так делать не надо
можно в редюсере еще. case ACTION_LOAD: var data = await fetch() return { data}
MVD
Так тоже нельзя
У меня работает
Anonymous
У меня работает
Ты всерьез думаешь, что тонко тролеш?
Danil
Т.е. в action creator норм будет с аргументами делать методы и вызывать их, чей результат передавать в dispatch я правильно понял
Bogdan
можно в редюсере еще. case ACTION_LOAD: var data = await fetch() return { data}
Да сейчас чел возьмёт и так же налепит, не понимаю, просто не пиши, если впадлу
Danil
На гитхабе ведь должны примеры быть
rovnyart
Mvc на клиенте писать?
Ну типы то свои ебучие и интерфейсы на клиенте пишете зачем-то, потому что надо везде впихнуть тайпскрипт) а тут просто здравый принцип изоляции интерфейса
Danil
Просто на серваке интерфейсы и разные слои на клиенте слои, эх
rovnyart
Просто на серваке интерфейсы и разные слои на клиенте слои, эх
ну это типа современные паттерны, нельзя просто так взять и в компоненте импортировать axios и херачить запросы на сервер, это будет нарушение солид
rovnyart
и вот конкретно с этим я согласен моментом)
Danil
Очень затратно получается в одного столько оберток писать
Danil
Для небольших проектов
rovnyart
ну, вообще никто не запрещает так делать, я говорю именно про задротские штуки, у меня у самого в проекте этот слой реализован только для получения данных, для пост-запросов и гет-запросов без возвращаемых данных мы так же и херачим в компонентах запросы на сервер)
rovnyart
но лично я бы хотел, чтобы мы так не делеали в будущем, потому что согласен с принципом)
rovnyart
вот и тут рекомендую по мере сил)))
Danil
А вообще этот слой данных с парента тянуть
Danil
Или вызывать в одном контейнере и все передавать через props вниз
rovnyart
ну у нас как сделано - есть HOC дата провайдер, которым можно обернуть компонент, и тогда в нем появляется пропс data, внутри которого сто питсот разных loadUsers, loadSomeOtherShits, плюс сами данные - data.users, data.someOtherShits, плюс теперь еще есть хук useData, который принимает название сущности и возвращает функцию загрузки, флаг loading, ошибку и сами данные, то есть const [loading, users, loadUsers] = useData('users')
rovnyart
в принципе это перекрывает все кейсы получения данных с сервера и даже более менее современненько
rovnyart
не перекрывает только всякие пост-запросы на проверку типа существующего уже имейла в валидации при регистрации и тд
rovnyart
вот в этих местах у нас все еще используется прямой запрос axios.post('api/users/checkEmail')
Danil
Ну а вообще в action creator'ах писать это нормальная практика
rovnyart
а сорян я не увидел, что ты используешь редакс, я конечно говорю о дивном новом пост-редакс мире, где его нет))
rovnyart
хотя при использовании редакса и прочих имхо мусорных в 2к19 стейт-менеджеров, слой получения данных все равно выделяется, просто находится в экшенах, и да, это нормальная практика, если считать нормальной практику испльзования редаксов=)
Andrew
Во тьме ночной при свете дня редакс выпиливаю я
Anonymous
Прочие имхо мусорные стейт-менеджеры здесь?
rovnyart
олды тут?
Anonymous
Как же прекрасен ваш мир, где все вокруг дураки
rovnyart
ну я очень осторожно теперь говорю, уже научен знаешь ли
rovnyart
"имхо" говорю и "если считать нормальной практику"
Andrew
А если у тебя прям огромная приложуха и хочется саги сделать?
Danil
То есть вызывается dispatch в компоненте и если в хранилище redux пусто, то в reducer вызывается процедура, содержащая fetch из actiona?
🅅aleriy
А если у тебя прям огромная приложуха и хочется саги сделать?
саги используются не по принципу огромности приложухи же :)
Vova
Парни, что думаете о книге "грокаем алгоритмы"? Уже несколько раз о ней слышал
Mihail
Тут всё ещё юзают редакс
Mihail
?
🅅aleriy
а когда тебе надо описать хитросплетенный процесс из последовательностей экшинов, где надо дождаться выполнения одних, чтобы запустить другие
Andrew
Киньте в меня статьей что даёт по факту выпиливание редакса
Vova
лучше один раз увидеть
Стоит почитать?
🅅aleriy
Стоит почитать?
ну у меня не было такой потребности пока, а так книг достойных много
Mihail
Киньте в меня статьей что даёт по факту выпиливание редакса
Уменьшение головной боли и количества лишнего кода
rovnyart
никогда не разжигал редаксосрачи и вот опять
Mihail
а где стейт хранить? )
Не хранить всё в одном стейте
Dmitry
хмм, а удобно вроде бы. реактивненько, я бы сказал.
Mihail
Контекст есть для глобальных вещей
Andrew
А если цепочку редьюсеров надо выстроить ? Прям в редьюсере диспетчится следующий ?
Andrew
Или выносится в какую то логику
rovnyart
А если цепочку редьюсеров надо выстроить ? Прям в редьюсере диспетчится следующий ?
лично я не могу представить себе такую задачу, которую нельзя было бы решить контекстом или хуками, возможно, такие задачи и существуют, первым делом, я бы проанализировал их на предмет вообще их актуальности, и если бы был убежден, что бер глобального стора и саг и редьюсеров действительно не обойтись, то пользовался бы редаксом и горя бы не знал) просто у меня вот есть 2 проекта, один с редаксом, один с божией помощью уже без, я смотрю на первый и меня берет тоска и слезы проступают на глазах от вида того количества кода, которое просто можно удалить. но опять же лично я не спорю, что возможны ситуации, когда без этого кода не обойтись, поэтому срачи на эту тему считаю затеей не особо обладающей смыслом
Anonymous
Нет технологии которая лучшая везде
rovnyart
но согласись, что существует проблема - когда ребята херачат этот стор и эти танки и саги в приложения, в которых не то что глобальный стор, там и контекст то не нужен, там максимум нужно тащить данные с сервера, а они для каждого компонента пишут редьюсер, экшены, комбинируют там чет с умным видом и оборачивают танками
rovnyart
потому что в 2016 году сказали React+Redux
Anonymous
Дед с батей опять по пьяне сцепились...чертовы стейт-менеджеры...
Anonymous
Пишу на flux и мне норм