
Andrew
23.01.2018
10:35:30
Как нормально обновлять редукс стейт вне реакта ?

Den
23.01.2018
10:35:34
даже в Root.js componentWillMount несколько раз отрабатыват

Andrey
23.01.2018
10:35:57

Andrew
23.01.2018
10:46:07

Google

Andrey
23.01.2018
10:46:33

Andrew
23.01.2018
10:47:04
Короче я подумал что данные все таки лучше хранить в сторе


Oleg
23.01.2018
10:49:07
Абстрактный вопрос.
Имеется REST API, основная функция - работа с заявками.
Помимо методов апи по созданию, обновлению, проверке статуса и прочее, есть конкретная логика, в каком порядке какие методы вызываются, меняется в зависимости от разных параметров.
В общем редьюсере храню метаданные состояния на каждый запрос, и полученные на успешные ответы данные по заявке нормализую и обновляю в одном обьекте.
Запросы к бекенду - отдельный сервис, под капотом axios, специальных middleware не использую.
Обработка асинхронных действий - redux-thunk, в простых случаях все похоже на пример из документации redux.
Конкретные вопросы:
а) В асинхронные action creators имеет смысл передавать данные из других редьюсеров в качестве аргумента, или это нормально, получать все возможные данные из getState() внутри создателя действий? (Смущают action creators длинной в 20+ строк)
б) Стоил ли в этих action creators хранить логику (например нет id заявки, запускаем create, есть id, запускаем update, или когда начать пинг, а когда закончить), или и в компонентах можно решать такие вещи?
Может стоит добавить еще маленьких action creators, для выноса этой логики, а работу с api не перегружать?


Stepan
23.01.2018
10:51:57
Абстрактный вопрос.
Имеется REST API, основная функция - работа с заявками.
Помимо методов апи по созданию, обновлению, проверке статуса и прочее, есть конкретная логика, в каком порядке какие методы вызываются, меняется в зависимости от разных параметров.
В общем редьюсере храню метаданные состояния на каждый запрос, и полученные на успешные ответы данные по заявке нормализую и обновляю в одном обьекте.
Запросы к бекенду - отдельный сервис, под капотом axios, специальных middleware не использую.
Обработка асинхронных действий - redux-thunk, в простых случаях все похоже на пример из документации redux.
Конкретные вопросы:
а) В асинхронные action creators имеет смысл передавать данные из других редьюсеров в качестве аргумента, или это нормально, получать все возможные данные из getState() внутри создателя действий? (Смущают action creators длинной в 20+ строк)
б) Стоил ли в этих action creators хранить логику (например нет id заявки, запускаем create, есть id, запускаем update, или когда начать пинг, а когда закончить), или и в компонентах можно решать такие вещи?
Может стоит добавить еще маленьких action creators, для выноса этой логики, а работу с api не перегружать?
redux-saga тебе поможет


Павлов
23.01.2018
10:56:44
всем привет, почему может не работать react-hot-loader/babel совместно с transform-async-to-generator

Andrey
23.01.2018
10:57:07
Что значит "не работать"?

Oleg
23.01.2018
10:57:39
redux-saga тебе поможет
С redux-saga получается, что у меня просто похудеет соответствующий ducks модуль, а рядом появится сага с этой логикой, или есть реальный профит?

Павлов
23.01.2018
11:01:40
Что значит "не работать"?
react-hot-loader отрабатывает, но после того как проект перезапущен (запускаем проект меняем (что-то) 0 эмоций, перезапускаем и типа отрабатывает hot-update)

Stepan
23.01.2018
11:03:23


Tauka
23.01.2018
11:07:31
Абстрактный вопрос.
Имеется REST API, основная функция - работа с заявками.
Помимо методов апи по созданию, обновлению, проверке статуса и прочее, есть конкретная логика, в каком порядке какие методы вызываются, меняется в зависимости от разных параметров.
В общем редьюсере храню метаданные состояния на каждый запрос, и полученные на успешные ответы данные по заявке нормализую и обновляю в одном обьекте.
Запросы к бекенду - отдельный сервис, под капотом axios, специальных middleware не использую.
Обработка асинхронных действий - redux-thunk, в простых случаях все похоже на пример из документации redux.
Конкретные вопросы:
а) В асинхронные action creators имеет смысл передавать данные из других редьюсеров в качестве аргумента, или это нормально, получать все возможные данные из getState() внутри создателя действий? (Смущают action creators длинной в 20+ строк)
б) Стоил ли в этих action creators хранить логику (например нет id заявки, запускаем create, есть id, запускаем update, или когда начать пинг, а когда закончить), или и в компонентах можно решать такие вещи?
Может стоит добавить еще маленьких action creators, для выноса этой логики, а работу с api не перегружать?
a) Нормально (АС вроде и нужен для того чтобы логику туда пихать, куда лучше чем держать логику в редюсере)
б) Это вопрос про диспатч экшна внутри АС вовсе иного экшна? Я думаю это вполне нормально, главное убедиться что вся логика которая там пишется, действительно касается только экшнов. Все же лучше чем в компоненте прописывать эту кашу, лучше завернуть логику в АС, и пусть компонент не париться что и когда вызывать


Yakov
23.01.2018
11:52:13

Google

Cenator
23.01.2018
11:52:21

Александр
23.01.2018
11:52:47

Cenator
23.01.2018
11:53:05

Сергей
23.01.2018
11:53:08

Александр
23.01.2018
11:54:02
есть бенчмарки?
Что быстрее, пересоздать объект и присвоить его или изменить нужное поле в объекте?

Cenator
23.01.2018
11:54:40

Александр
23.01.2018
11:54:59

Cenator
23.01.2018
11:55:10
в лучшем случае должны возвращать примитивы
тогда пересоздания будут не большими

Александр
23.01.2018
11:55:23
Ты не ответил на мой вопрос )

Cenator
23.01.2018
11:55:51
блять, как раз ответил, что пересоздать примитив это примерно то же что и переприсвоить

Александр
23.01.2018
11:56:22

Cenator
23.01.2018
11:56:39
я довел мысль в нужное русло

Александр
23.01.2018
11:57:56

Kostya
23.01.2018
12:15:47
TypeError: history.listen is not a function
такая ошибка

Vladimir
23.01.2018
12:17:13
Какая версия react-router?

Kostya
23.01.2018
12:17:27
"react-router": "^4.2.0",

Vladimir
23.01.2018
12:18:05
Так, хистори как-то по-другому подключался к стору

Google

Vladimir
23.01.2018
12:18:06
Ща

Алексей
23.01.2018
12:18:14

Vitaly
23.01.2018
12:18:52

Vladimir
23.01.2018
12:18:53
https://github.com/reactjs/react-router-redux
Вот же
Какой createHistory
Стоп, не то
https://github.com/ReactTraining/react-router/tree/master/packages/react-router-redux
Вот так должно быть

Kostya
23.01.2018
12:21:00
о, спасибо

Владимир
23.01.2018
12:37:01
Мигрировал с redux-form на formik: как свежего воздуха глотнул.
Только одна проблема: получение значениий полей извне формы. Раньше они легко вытаскивались из стора через formValueSelector.
Сейчас пропихиваю onChange из хока до формы, но выглядит костыльно.
Кто-нибудь решал подобную задачу?

Maxim robox
23.01.2018
12:44:15

Dima
23.01.2018
12:51:32
Ребята,подскажите,в чем может быть проблема: даю transform: "matrix(1 0 0 1 0 0)" как инлайн стайл в компоненте,но на деле он исчезает,хотя тот же rotate работает

Max
23.01.2018
12:51:37
еще один такой вопрос — будет RO на неделю

Cenator
23.01.2018
12:59:50

Xeniya
23.01.2018
13:00:18

Admin
ERROR: S client not available

Dima
23.01.2018
13:00:26

Google

Dima
23.01.2018
13:01:18

Xeniya
23.01.2018
13:01:30
потому что вот этот matrix (1 0 0 1 0 0) синтаксис неправильный

Andrew
23.01.2018
13:03:13
это шесть бит

Dima
23.01.2018
13:03:33

Yuriy
23.01.2018
13:07:01
гайз, всем привет, вопрос насчет потери контекста
ifMobile('do nothing', this.emailInput.input.focus.bind(this.emailInput.input))можно ли этого байдинга как то избежать? А то чуть что illegal invocation

Andrew
23.01.2018
13:07:53
анонимкой

Yuriy
23.01.2018
13:07:55
ну или статейку по этому поводу хорошую

Andrew
23.01.2018
13:08:32
ifMobile('do nothing', () => this.emailInput.input.focus());
аля вот так

Yuriy
23.01.2018
13:08:36
да не помагает анонимка вроде
хотя ща попробую

Andrew
23.01.2018
13:10:23
единственный минус, ты создаешь еще одну функцию
ток у тя бинд неверный был
this.emailInput.input.focus.bind(this)
ты ж контекст привязываешь
или он там и должен был быть this.emailInput.input?

Yuriy
23.01.2018
13:11:58
вроде и должен быть
я в фп полез, оно там черт знает где вызывается

Google

Andrew
23.01.2018
13:12:20
а я вроде допер что ты делаешь
метод у класса создаешь, его биндишь
вот какой то такой паттерн
ifMobile('do nothing', this.setFocus.bind(this));
//....
setFocus() {
this.emailInput.input.focus();
}
как то так

Yuriy
23.01.2018
13:14:00
да, в принципе так тоже красиво
?