
Ivan
21.04.2016
10:19:17
Пока нет

Vadim
21.04.2016
10:19:26
/JSlang
/JSlang
упс

Google

Vadim
21.04.2016
10:19:38
=)

Denis
21.04.2016
10:28:16
redux-form радует своей активностью)

Alexander
21.04.2016
10:28:56
да, но предыдущую версию пришлось выкинуть и писать свое

Denis
21.04.2016
10:30:18
Сликшом opinionated ?

Alexander
21.04.2016
10:30:39
очень не удобные на больших формах
плюс просто тыща багов

Denis
21.04.2016
10:30:58
))
Мне так тоже показалось, когда ещё первый раз прочитал код

Юра
21.04.2016
10:33:25
это перекат скайп чата?
всем привет

Alexander
21.04.2016
10:35:39
они интересную концепуию предлагают привязки полей к стейту. но не знаю на сколько она хороша в деле

Sergey
21.04.2016
10:40:25

Denis
21.04.2016
10:40:41
:)

Google

Dan
21.04.2016
10:45:24
всё? убунта вышла?

Denis
21.04.2016
10:45:52
Это в девопс чатик)

Dan
21.04.2016
10:47:08
откуда тогда столько радости? )

Anatolii
21.04.2016
10:53:44
/JSlang

Dan
21.04.2016
10:53:57
?

Denis
21.04.2016
10:56:07
Итак, мы преодолели отметку в 300. Отлично.

Ivan
21.04.2016
10:56:34
То чувство, когда реакт программистов, больше чем js

Denis
21.04.2016
10:56:41
Именно :)
Итак, весь список русскоязычных чатов в Telegram по JavaScript, DevOps и DBA на данный момент:
+ https://telegram.me/react_js
+ https://telegram.me/angular_js
+ https://telegram.me/jslang
+ https://telegram.me/devops_ru
+ https://telegram.me/dba_ru
+ https://telegram.me/nodejs_ru
Теперь пора заниматься делами. :)

from
21.04.2016
11:00:52

Denis
21.04.2016
11:01:32
В надежде удалить Gitter и забыть про него :)

Юра
21.04.2016
11:01:47
Давно пора было

from
21.04.2016
11:01:49
gitter тяжёлый, да

Alexander
21.04.2016
11:02:19

from
21.04.2016
11:02:52
по флаксу сюда ведь тоже норм писать?

Denis
21.04.2016
11:03:50
Да
Про Redux / Flux / Relay тоже здесь всё

Ivan
21.04.2016
11:07:46

from
21.04.2016
11:07:46
Хочу для разминки обсудить почти классическую проблемку, послушать мнения других
Есть UserStore, есть OrdersStore. Запрос к серверу для получения orders работает только при авторизованном юзере. Юзер авторизуется необязательно в момент открытия приложения, а теоретически в любой момент.
Задача — как только сделан успешный запрос на юзера и юзер сохранён в UserStore (регистрация или логин), — сделать запрос на orders и сохранить их в OrdersStore.
Как правильно "связать" эти события? В каком месте "слушать" авторизацию пользователя, чтобы инициировать запрос на orders?

Alexander
21.04.2016
11:09:35
все зависит конечно от конкретной реализации флукса которую ты используешь, но кажется наиболее логично пользоваться промисами

Google

Alexander
21.04.2016
11:10:21
или если ты можешь подписаться на событие удачного получения юзера(не редукс), то в этом хендлере отправлять запрос на получение заказов

from
21.04.2016
11:10:24
вот промисы — как раз не по флаксу
Но даже если с помощью них — в какое место их засунуть? :)

Alexander
21.04.2016
11:10:47
гусары молчать

Kanat
21.04.2016
11:11:23
http://codepen.io/towc/pen/wGjXGY

Alexander
21.04.2016
11:13:51
мне сложно сказать в каком месте конкретно в твоем проекте, но если грамотно все спроектировано, то должна быть возможность получить промис запроса к юзерам или должна быть какая то абстракция над этими промисами

from
21.04.2016
11:14:36

Alexander
21.04.2016
11:15:20
если ты можешь подписаться на него, то конечно почему бы нет. В редуксе просто это считается не модным патерном :_

from
21.04.2016
11:15:46
Сторы должны слушать экшны, и никто больше
Иначе это в pub/sub превращается

Alexander
21.04.2016
11:16:07
на крайняк всегда можно в каком нибудь компоненте в componentWillReceiveProps проверять изменения пропса userId или какого нибудь еще и если понимаешь, что юзер изменился, запрашивать заказы. но имхо это не красиво
ну вот если у тебя есть ограничения что кто то что то "должен", тогда да :)
но за время работы с этими всякими флуксами я понял, что никто ничего никому не должен, потому что это все на столько молодо, что просто не может быть реальных best practice

from
21.04.2016
11:17:20

Alexander
21.04.2016
11:18:36
так то да, но эти ограничения нужно двигать под себя, потому что это уже какое то программирование ради парадигм, а не ради задачи получается

Admin
ERROR: S client not available

Alexander
21.04.2016
11:18:44
поэтому не вижу ничего плохого в pub/sub

from
21.04.2016
11:19:18

Vladimir
21.04.2016
11:20:14
>в перспективе идут на пользу понятности происходящего
в теории.

Alexander
21.04.2016
11:20:26
так, наверное я уже подзабыл, что имеется ввиду под контейнером в классическом флуксе :)
если твой стор не обновляет пропсы у контейнера, то он все равно же дергает какой то хендлер когда что то изменяется в сторе? вот там вот можно делать что угодно если нужно

Google

Alexander
21.04.2016
11:21:33
как запасной вариант, потому что по мне это не красиво

from
21.04.2016
11:21:53

Alexander
21.04.2016
11:25:34
ну в рудусе, стор отправляет новые пропсы в контейнер, поэтому как раз componentWillReceiveProps место где можно отслеживать изменения стора

from
21.04.2016
11:29:15

Roman
21.04.2016
11:31:16
Насчет форм, если кому надо. Годная, простая, кастомизируемая и интуитивно понятная реализация:
https://jquense.github.io/react-formal/docs

from
21.04.2016
11:31:48
---------------
Ещё возможно, что кому-то ситуация в задачке кажется неоправданной, и потому не хочется её "подгонять" под каноничное решение.
Поэтому я намекну, в какую сторону (на мой взгляд) стоит начать думать. Первый правильный вопрос, который должен возникнуть — какого черта это orders вообще не приходят вместе с юзером, если они так нужны, когда юзер авторизовался? :)

Roman
21.04.2016
11:31:49
Плюс там же у него есть еще клевые react-widgets
https://github.com/jquense/react-widgets

Vladimir
21.04.2016
11:33:13
>какого черта это orders вообще не приходят вместе с юзером, если они так нужны, когда юзер авторизовался? :)
Если юзер нужен на всех роутах, а заказы - только на одном, это логично:)

from
21.04.2016
11:34:02

Alexander
21.04.2016
11:35:24
контейнером в редаксе обычно называется компонент, который оборачиватся в connect

from
21.04.2016
11:35:30

Alexander
21.04.2016
11:36:11
в map*State*ToProps ты не можешь следить за изменениями, потому что там недоступно предыдущее состояние и там ты не можешь рейзить новые экшены

from
21.04.2016
11:37:10

Alexander
21.04.2016
11:39:19
можно и так сказать. я не готов спорить о терминологии, потому что она так же молода как и концепция :)
но факт остается фактом, что mapStateToProps не поможет в решении задачи, потому что в ней нет предыдущего стейта приложения(то есть нельзя отследить, что изменился изер) и нельзя диспатчить экшен(то есть нельза запросить заказы)

Vladimir
21.04.2016
11:43:01
я не использую флакс в этих местах.
У меня все условные экшнкреейторы возвращают промисы.
То есть у меня будет в том коде, где я использую флакс
componentDidMount(){
fetchUser()
.then(fetchOrders)
.then(()=>...UserStore.getUser()...OrderPageStore.pages...)
} // fetchUser и fetchOrders - экшнкреейторы
Но я повторюсь, я не использую редакс и у меня самописный флакс в проекте и вообще я от него отказываюсь потихоньку и ухожу в фрп:)

from
21.04.2016
11:43:09


Alexander
21.04.2016
11:44:29
ну я так и сказал с самого начала, что это возможно сделать при любой реализации флукса, но мне так не нравится

Anton
21.04.2016
11:46:11
Настроил boilerplate. Команда Webpack выдаёт сборку правильно в директорию. А node server.js на основе express хер знает куда его кидает