Второй не рекомендуется.
Следующий код будет жаловаться, если вы не сопоставили действию, тогда как установка { dispatch: false }
снимает эту проверку и должна использоваться только для побочных эффектов , таких как навигация , настройка localStorage et c.
doSomething$ = createEffect(() =>
this.actions$.pipe(
ofType(AuthActions.doSomething),
map(() => AuthActions.doSomethingElse())
));
В вашем примере неясно, зачем нужны два действия, когда нужно одно.
Если вам нужен регистратор общих действий, будет работать следующее:
/**
* Log all actions in the console
*/
export function logger(
reducer: ActionReducer<RootStoreState.State>
): ActionReducer<RootStoreState.State> {
return (state, action) => {
const result = reducer(state, action);
if (action.type.startsWith("[")) { <----FILTER TO ONLY USER CREATED ACTIONS (i.e. not router)---------
console.groupCollapsed(action.type);
console.log("prev state", state);
console.log("action", action);
console.log("next state", result);
console.groupEnd();
}
return result;
};
}
и app.module.ts
export const metaReducers: MetaReducer<any>[] = !environment.production
? [logger]
: [];
@NgModule({
imports: [
...
StoreModule.forRoot(ROOT_REDUCERS, {
metaReducers, <--------------------------------------KEY LINE-----------
runtimeChecks: {
strictStateImmutability: true,
strictActionImmutability: true,
strictStateSerializability: true,
strictActionSerializability: true
}
}),
...