Я работаю с Metronic, который является начальным / административным сайтом, написанным на Angular.
Я пытаюсь загрузить определенный набор данных с использованием идентифицированного идентификатора пользователя.
Это мой эффект:
@Injectable()
export class ProjectEffects {
@Effect()
loadAllProjects$ = this.actions$
.pipe(
ofType<AllProjectsRequested>(ProjectActionTypes.AllProjectsRequested),
withLatestFrom(this.store.pipe(select(allProjectsLoaded))),
filter(([action, isAllProjectsLoaded]) => !isAllProjectsLoaded),
mergeMap(() => this.projectService.getProjectsByOwnerId(4)),
map(result => {
return new AllProjectsLoaded({projects: result});
}),
catchError(error => {
console.debug("error [%s]", error);
return of({ results: null });
})
);
@Effect()
init$: Observable<Action> = defer(() => {
return of(new AllProjectsRequested());
});
constructor(private actions$: Actions, private projectService: ProjectService, private store: Store<AppState>) { }
}
Это мой селектор:
export const currentUser = createSelector(
selectAuthState,
auth => auth.user
);
Проблема, с которой я столкнулся, заключается в том, как извлечь текущего пользователя из хранилища и передать значение user.id вthis.projectService.getProjectsByOwnerId (n).
Я пробовал многочисленные комбинации
this.user $ = this.store.pipe (select (currentUser))
и подписка на наблюдаемое без какой-либо удачи.
Какой «правильный» способ получить доступ к currentUser из хранилища синхронным способом?