@react_js

Страница 1199 из 5115
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 }) передаются верхнеуровневому компоненту, который решает, что с ними делать дальше.

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
Кирилл
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
К слову о бэд практис

Кирилл
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

Alexander
20.04.2017
11:23:18
ну так вот мы и приходим к тому что в сторе надо хранить состояние UI
При нажатии на кнопку. Открываешь предоадер. При изменении стора показываешь модалку

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

Кирилл
20.04.2017
11:24:34
При нажатии на кнопку. Открываешь предоадер. При изменении стора показываешь модалку
при изменении редакс стора? так он может и не изменяться вовсе, если запрост не на поулчение данных, например

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

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 после отпарвки того и дгугого (успешной) надо показать модалку

Кирилл
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
ну такое себе... получается что для каждого запроса нужно слушать свой пропс + после показа модалки менять этот пропс обратно

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
все запросы идут в мидлваре

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
Всем привет. Как думаете: стоит ли делать соц сеть на реакте)

Страница 1199 из 5115