Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Правильный ответ: DELETE_ITEM_SUCCESS может обрабатываться как редуктором items, так и редуктором favoriteItems.Это тоже неправильный ответ. Ну или не лучший из правильных. Я реализую это как действия редюсера, который стоит в узле дерева выше этих двух. То есть у одного Action всегда только один редюсер, который его обрабатывает. А этот родительский редюсер в свою очередь вызывает соответствующие чистые функции создающие новое дочернее состояние для этого родителя. Родительский редюсер же интегрирует это в состояние. примерно так.
export function parentReducer(prev: State, action: IAction){
switch (action.type)
case Remove:
return {
...prev,
items: childFunctions.removeItem(prev.items, action.itemId),
favoriteItems: childFunctions.removeItem(prev.favoriteItems, action.itemId),
};
}Мне кажется проблема даже не в том что нельзя что-то получить из контекста, это всегда можно решить расширяя стейт, проблема в том, что писать сколько-нибудь сложную логику/бизнеслогику на rxjs это самоубийство, и даже если не убились с первого раза, то со второго точно получится.
Прекратите использовать Ngrx/effects для этого