
Арсений
17.11.2016
21:51:35
Пока у этого только абстрактное преимущество что типа это чистый js. Но это чистый js в основном за счёт babel

[Anonymous]
17.11.2016
21:51:48

Юра
17.11.2016
21:52:12

Арсений
17.11.2016
21:53:35
В clojurescript конечно поадекватнее это всё

Google

Арсений
17.11.2016
21:53:51
Чистые функции меняют произвольные структуры данных

Tigran
17.11.2016
22:16:52
Ой, сори, ответом случайно получилось

Ilya
17.11.2016
22:19:47
Слышал
Офис хороший, ребята адекватные работают

Valentin
17.11.2016
22:48:25
А напомните чатик с вакансиями плз

Кисик
17.11.2016
22:51:40
JavaScript Jobs — вакансии и аналитика
Публикуем вакансии и запросы на поиск работы по JavaScript, React.js, Node.js, React Native и пр. Full-time, part-time, remote и разовые подработки.
Обмен инсайдами и аналитикой на рынке труда.
См. также: @js_ru, @nodejs_ru, @mobile_jobs, @devops_jobs
https://telegram.me/javascript_jobs

Valentin
17.11.2016
22:58:59
Сяп

Kreizo
18.11.2016
07:26:42
http://i.prntscr.com/d4ac9d9cde5842439604130698fe0082.png
подскажите кто работает на реальных проектах
это нормально дизпатчить в стору прям с функции ?
и запускать саму функцию из компонента где она рендерится

Исмаил
18.11.2016
07:30:07

Google

Kreizo
18.11.2016
07:30:19
а как должно быть?

Исмаил
18.11.2016
07:30:34
Через экшн

Kreizo
18.11.2016
07:30:48
я в принципе понял как работает bindActionCreators

Andrew
18.11.2016
07:30:51
лучше диспатчить евенты из асинхронных экшенов. Посмотри в сторону redux-saga, redux-think

Kreizo
18.11.2016
07:31:08
но не получается с асинхронным кодом совместить

Andrew
18.11.2016
07:31:40

Kreizo
18.11.2016
07:32:47
http://i.prntscr.com/f803aaceaa544b14adad65d138b22ee1.png
смотрю документацию с гитхаба
https://github.com/gaearon/redux-thunk

Арсений
18.11.2016
07:33:33
Саги лучше

Dmitry
18.11.2016
07:35:10
Но массивнее

Исмаил
18.11.2016
07:38:43

Kreizo
18.11.2016
07:41:04
http://i.prntscr.com/19693ce5b4dc4a8c94a0f07fcca017ce.png
ну вот есть функция
внутри нее переменная streamers

Исмаил
18.11.2016
07:41:20
Thunk позволяет диспатчить не готовый экшн, а функцию, которая вернет его, взяв из других экшн криэйторов

Kreizo
18.11.2016
07:41:28
где я эту функцию должен запустить ?
она же ничего не возвращает
кроме промиса
http://i.prntscr.com/1d977b5d1e7542ef86a3e0384eabc0fd.png

Google

Kreizo
18.11.2016
07:46:05
в компонентдидмаунт я запускают функцию bindActionCreators

Исмаил
18.11.2016
07:46:22
Я не могу понять из твоего кода что тебе нужно сделать. Если ты работаешь с редаксом, асинхронный код должен лежать в отдельном экшене, в котором ты через thunk и connect получишь доступ к диспатчеру, которому после получения данных с api можешь скормить нужный action creator. Axios.js - что это за файл вообще, для чего он?

Kreizo
18.11.2016
07:47:29
там функция где 2 запроса к апи
http://pastebin.com/P06rtUhV
сортировка итд
ну и промисс.all

pepsi ¯\_(ツ)_/¯
18.11.2016
07:48:03
просто ты должен вызывать dispatch() с нужным экшеном внутри .then() и/или .catch()

Kreizo
18.11.2016
07:48:48
store.dispatch ?
я так и делал
но сказали что не правильный подход
then у меня внутри этой функции
у меня не получается оттуда эти данные вытащить
axios.all([getDota(), getCS()])
.then(axios.spread(function (dota, cs) {
let streamers = dota.data.streams.concat(cs.data.streams)
streamers.sort(sortByNumber)
}))

? ethorz
18.11.2016
07:51:37
оп, дота стримы)

Kreizo
18.11.2016
07:51:56
https://kreiz0.github.io/projects/godota/

? ethorz
18.11.2016
07:52:29
неплохо, но а в чем смысл?
тот же твич

Kreizo
18.11.2016
07:52:44
там есть предосмотр стрима

Исмаил
18.11.2016
07:52:49
Ты их и не вытащишь, тебе нужно на месте, внутри .then() продиспатчить нужный action. Который запихнет в стор отсортированные данные

pepsi ¯\_(ツ)_/¯
18.11.2016
07:53:18

Google

Сергей
18.11.2016
07:53:49
Писали бы с использованием recompose и проблем бы не было

Kreizo
18.11.2016
07:53:54
тогда зачем мне bindActionCreators ?
если я просто запускаю функцию
с компонента
и она сама дизпатчит в стор

pepsi ¯\_(ツ)_/¯
18.11.2016
07:54:44
чтобы забиндить getStreamers например, если тебе нужно, чтобы оно по нажатию на кнопку начинало загружать
ну или при маунте какого-то компонента

Kreizo
18.11.2016
07:55:41
this.props.actions.getStreamers() ?
вешаю на клик ?

Исмаил
18.11.2016
07:56:31
Да
Или вызываешь в маунте

Kreizo
18.11.2016
07:57:49
если мне нужно что бы оно автоматически загружалась перед render
componentWillMount () {
getStreamers()
}
я пишу вот так ?

pepsi ¯\_(ツ)_/¯
18.11.2016
07:58:08
this.props.actions потерял

Исмаил
18.11.2016
07:58:29
Рекомендуют выполнять асинхронные действия в did mount

Kreizo
18.11.2016
08:02:44
извиняйте если слишком тупой вопрос
новичок еще
http://i.prntscr.com/a85bf082c6a44569b4346d224ea5046c.png
вот есть функция ggwp

Google

Kreizo
18.11.2016
08:03:10
в ней происходит дизпатч
справа функция action creator
getStreamers
как эту функцию ggwp
привазять с acttion creator функцией
там только type

pepsi ¯\_(ツ)_/¯
18.11.2016
08:08:19
не понятно, зачем тебе ggwp и getStreamers

Kreizo
18.11.2016
08:09:00
ggwp делает всю асинхронную работу
и дизпатчит данные
а справа пустая функция привязанная
acttion creator

Artyom
18.11.2016
08:11:24
отличне названия ;)
тебе на помощь могут прийти redux-thunk либо redux-promise-middleware либо redux-saga в зависимости от того что тебе покажется более удобным

Kreizo
18.11.2016
08:13:14
у меня установлен redux-thunk
просто есть отдельно функция
в которой все происходит
и ее нужно связать с этим bindActionCreators

Исмаил
18.11.2016
08:14:31
Сплит ради сплита

Artyom
18.11.2016
08:15:17
с redux-thunk ты можешь вместо объекта вернуть функцию
а ней сделать вызов ggwp

Kreizo
18.11.2016
08:16:51
https://github.com/gaearon/redux-thunk