Должны ли мы создавать по одному эпику для каждого типа действия? в наблюдаемой редукции

Я нахожусь в процессе обучения, наблюдаемого при редукции, и у меня есть некоторые сомнения:

Должны ли мы создавать эпическое изображение для каждого действия, которое мы будем наблюдать?

export const actionEpic = action $ => action$.ofType('ACTION')
export const action2Epic = action $ => action$.ofType('ACTION2')

Или мы можем создать его для многих, как редукторы с переключателем? импортировать каждый Epic, чтобы убедится в промежуточном программном обеспечении, - это большая работа


person MatCas    schedule 09.11.2016    source источник


Ответы (1)


Подавляющее большинство эпиков начинается с сопоставления одного действия, например action$.ofType(SOMETHING). Это связано с тем, что обычно эти действия вызывают некоторый побочный эффект (например, вызов AJAX), специфичный для одной задачи.

Подумайте о чем-то вроде получения модели пользователя. Обычно вам нужно только прослушивать FETCH_USER, чтобы начать этот процесс, но, безусловно, тот же самый эпос может прослушивать другие действия, чтобы знать, когда отменить запросы в полете или что-то подобное.

Если вы смешиваете проблемы с побочными эффектами в одном эпике, например, создаете тот, который обрабатывает как выборку пользователя, так и выборку сообщений пользователя, вы начнете усложнять свои эпики в сопровождении и тестировании.

При этом нет никаких правил. Есть законные (но редкие) случаи, когда эпическое прослушивание нескольких действий вызывает некоторый побочный эффект. например если эпик выполняет некоторую общую задачу, относящуюся к нескольким доменам, наиболее очевидным является ведение журнала, но есть и другие.

Как и редукторы, несколько эпиков могут прослушивать одно и то же действие, однако это имеет смысл только тогда, когда между ними практически не требуется координации.

person jayphelps    schedule 09.11.2016
comment
Понятно, большое спасибо, Джей, продолжай отлично справляться с этим инструментом. - person MatCas; 09.11.2016
comment
@jayphelps Не могли бы вы пролить свет на то, как можно слушать несколько действий в одном эпосе? stackoverflow.com/ questions / 43540419 / - person bigpotato; 21.04.2017