Если у меня есть два или более действия NGRX, которые выполняют одно и то же, но запускаются в разных частях моего приложения, могу ли я использовать одно действие для выполнения этого, одновременно дифференцируя строку действия в моем журнале NGRX?Я спрашиваю, потому что, когда пишу действия и пытаюсь следовать принципам «гигиены действий», где действия должны быть специфичными для события и могут быть читаемы год спустя, и сообщить разработчику, где именно в приложении было запущено действие, я хочу ограничить каккак можно больше NGRX.
Например: у меня есть действие "AddTodo".Это действие может быть выполнено в двух местах в моем приложении - одно на странице «Список Todo», а другое на странице «Детали Todo».Каждое действие уникально для страницы, с которой они инициированы, но они делают то же самое;они добавляют новый элемент Todo в мой объект состояния.
const TODO_LIST = '[Todo List]';
const TODO_DETAILS = '[Todo Details]';
export const TODO_LIST_ADD = `${TODO_LIST} Add`;
export const TODO_DETAILS_ADD = `${TODO_DETAILS} Add`;
export class TodoListAdd implements Action {
readonly type = TODO_LIST_ADD;
constructor(public payload: Todo) { }
}
export class TodoDetailsAdd implements Action {
readonly type = TODO_DETAILS_ADD;
constructor(public payload: Todo) { }
}
export function todoReducer(state = initialState, action: Action): TodoState {
switch (action.type) {
case actions.TODO_LIST_ADD:
case actions.TODO_DETAILS_ADD:
return {
...state,
todo: (action as actions.TodoListAdd | actions.TodoDetailsAdd).payload,
}
default:
return state;
}
}
Если вы хотите соблюдать гигиену действий, это единственный способ сделать это?Есть два действия, которые делают одно и то же, единственное отличие - это тип строки, который различает их в журнале событий NGRX.Мне бы очень хотелось, чтобы был способ уменьшить количество шаблонов, соединяя создателей действий, не теряя при этом специфику типа.
Спасибо,