
Alexey
20.04.2017
11:04:00
а перед отправкой наверняка у тебя шаг трансформации есть

Max
20.04.2017
11:04:11
пока если честно нет
но ты прав, скорее всего он будет

Alexey
20.04.2017
11:05:59
в любом случае тема такая, все по-разному решают ее :)

Google

Pavel
20.04.2017
11:07:56
но ты прав, скорее всего он будет
Мы приведение типов делаем в функциях подобных onSubmit, как хранить данные компоненты решают сами и на выходе формируют state формы, который через функцию подобную onSubmit({ values }) передаются верхнеуровневому компоненту, который решает, что с ними делать дальше.

Max
20.04.2017
11:08:24

Alexey
20.04.2017
11:08:49
там еще могут быть сценарии при конвертации, когда у тебя пустая строка в инпуте, а численное представление тут 0 (либо null, если у тебя maybe тип). И обратно не всегда удобно перегнать

Max
20.04.2017
11:08:50
у меня компоненты сразу по онченж меняют стейт формы

Alexey
20.04.2017
11:08:58
но от реализации зависит и об этом помнить нужно

Max
20.04.2017
11:09:08
Саш, ну да ты прав
плюс изоляция модулей получается
код лучше
хм

Кирилл
20.04.2017
11:18:59
распространена ли практика хранить в глобальном сторе состояние UI элементов?

from
20.04.2017
11:19:35
так весь редакс почти про это
ну то есть большой вопрос надо ли тебе это делать, и чаще нет, чем да
но когда да — то вполне)

Google

Dreamerinnoise
20.04.2017
11:20:09

Max
20.04.2017
11:20:10

Кирилл
20.04.2017
11:20:39
да я все не пойму как по человечески надо, например, показывать модалку при успешном выполнении запроса

from
20.04.2017
11:21:00
о это норм вопрос)

Кирилл
20.04.2017
11:21:01
если экшн креатор не возвращает промис и ты не знаешь когда там чего выполнилось

Pavel
20.04.2017
11:21:04
щас тебе скажут что модалки это bad practice

Dreamerinnoise
20.04.2017
11:21:20
К слову о бэд практис

from
20.04.2017
11:21:20

Кирилл
20.04.2017
11:21:21
ну модалки это как пример

Dreamerinnoise
20.04.2017
11:21:34
https://twitter.com/ocramius/status/854214972825640960
втф?

Кирилл
20.04.2017
11:21:42
ну так вот мы и приходим к тому что в сторе надо хранить состояние UI

Dreamerinnoise
20.04.2017
11:21:46
с какого хера спиннер это плохой UX?

Кирилл
20.04.2017
11:21:52
isModal: boolean

from
20.04.2017
11:21:53

Max
20.04.2017
11:22:30

Alexander
20.04.2017
11:23:18

from
20.04.2017
11:23:25
грубо говоря в каком-то компоненте-контейнере
if (!prevStoreState.requestSuccess && storeState.requestSuccess) { this.setState({ showModal: true }); }
это упрощённо конечно

Кирилл
20.04.2017
11:24:34

Алексей
20.04.2017
11:24:45

Google

from
20.04.2017
11:25:11
по идее наоборот должно быть:)

Alexander
20.04.2017
11:25:13

Pavel
20.04.2017
11:25:41
в сторе может храниться значение вроде isDoingSomething, в случае которого можно показывать/скрывать модалку

Кирилл
20.04.2017
11:26:21
так вот все равно все упирается на то что в сторе мы храним какие то данные, которые говорят о том выполнился запрос или нет
и эти даные на бизнес логику не влияют, только на УИ

from
20.04.2017
11:27:04
так это естессн
"communication state"

Pavel
20.04.2017
11:27:17
если стор описывает сущность, то можно хранить данные о том что сейчас с этой сущностью происходит
и на основании этого менять ui

Кирилл
20.04.2017
11:29:50
если брать пример из вакуума - есть страница на ней 2 инпута:
отправка смс и отправка email
после отпарвки того и дгугого (успешной) надо показать модалку

Alexander
20.04.2017
11:30:44

Кирилл
20.04.2017
11:31:04
ахах) ну это то понятно
вернул я ок - как компонент узнает что модалку то надо показать
результат записывать в стор и слушать его из компонента?

Max
20.04.2017
11:32:06
по смене пропса

from
20.04.2017
11:32:15
+

Pavel
20.04.2017
11:32:47

Кирилл
20.04.2017
11:32:56
ну такое себе... получается что для каждого запроса нужно слушать свой пропс + после показа модалки менять этот пропс обратно

Max
20.04.2017
11:33:08

Google

Max
20.04.2017
11:33:48
у тебя
if (this.props.requesStatus==‘loading’ && newProps.requestStatus ==‘OK’) {
this.setState({showModal: true})
}
не?

Pavel
20.04.2017
11:34:08
а почему компонент это должен слушать а не экшн криейтор раскидывать?

Max
20.04.2017
11:34:12
в componentwillreceiveprops

Кирилл
20.04.2017
11:34:18
ну надо же понять какой это запрос - имейл или смс

Max
20.04.2017
11:34:22

Кирилл
20.04.2017
11:35:12
все запросы идут в мидлваре

Max
20.04.2017
11:35:25

Admin
ERROR: S client not available

Max
20.04.2017
11:36:03
в принципе туда же можно захерачть success хендлер

Кирилл
20.04.2017
11:36:30
санки - redux-thunk?

Max
20.04.2017
11:36:34
ага

Кирилл
20.04.2017
11:36:40
ну там проще да там промис
я на redux-saga сел

Pavel
20.04.2017
11:36:59
куда раскидывать?
диспатчить экшн который обозначит что приложение находится сейчас в таком состоянии, когда запрос успешно отправлен, не loading, не error, а дальше в зависимости от этого показывать модалку или что то еще

Max
20.04.2017
11:37:09
погоди
вот у тебя запрос вернул success
ты его сохранил в стейт

Google

Max
20.04.2017
11:37:28
дальше что?
ты не можешь завязать модал на это
а только на изменение
иначе
— у тебя модал будет висеть всегда
— для закрытия модала надо будет убирать success что не ок, поскольку разные домены
— это то же самое что хранить в стейте showModal: true

Pavel
20.04.2017
11:38:41
у тебя состояние модалки может быть завязано в стиле "данные успешного запроса обрабатываются в модалке"
короче пойдем от противного
компонент знает про запросы - говно
переделывай

Max
20.04.2017
11:39:15
не
компонент не знает про запросы
явно
компонент знает что есть данные
и они в каком-то стейте находятся loading/loaded

Кирилл
20.04.2017
11:39:39
ну да и что они изменились

Max
20.04.2017
11:40:34
в любом случае если формулировка “показать модал когда данные загрузились” подразумевает что компонент знает что данные могут находиться в нескольких стейтах, не?

Кирилл
20.04.2017
11:41:02
тут нет привязки к данным - просто что запрос успешно отправлен
допустим это был запрос на изменение данных

Алексей
20.04.2017
11:41:33
на нотификашку похоже
а не на модалку

Pavel
20.04.2017
11:41:48
потом ты сделаешь другое место где тебе нужно те же данные изменить, но не показать модалку
и такой ой

Кирилл
20.04.2017
11:42:45
ну так в том то и вопрос что компонент должен решать нужно ли что-то делать при выволнении запроса который не мутирует стейт

Sergey
20.04.2017
11:42:50
Всем привет. Как думаете: стоит ли делать соц сеть на реакте)