NGXS@Select-in-service正在引发问题

NGXS@Select-in-service正在引发问题,select,state,ngxs,Select,State,Ngxs,我在angular应用程序中使用NGXS,在我的一些服务中,我需要在返回数据之前选择状态。 看起来很简单,我做了这样的练习: @Select(AuthState.token) token$!: Observable<string | null>; public getFieldDefinitions(): Observable<ApiFieldDefinition[]> { return this.token$ .pipe(mergeMap(to

我在angular应用程序中使用NGXS,在我的一些服务中,我需要在返回数据之前选择状态。 看起来很简单,我做了这样的练习:

@Select(AuthState.token) token$!: Observable<string | null>;
public getFieldDefinitions(): Observable<ApiFieldDefinition[]> {
    return this.token$
        .pipe(mergeMap(token => of([{}])));
}
@Select(AuthState.token)令牌$!:可观察的;
然后像这样使用它:

@Select(AuthState.token) token$!: Observable<string | null>;
public getFieldDefinitions(): Observable<ApiFieldDefinition[]> {
    return this.token$
        .pipe(mergeMap(token => of([{}])));
}
publicGetFieldDefinitions():可观察

有什么线索可以导致这个问题吗


当我改用
选择snapshot
时,一切都正常工作。

听起来好像你的http调用实际上没有发生。能否验证正在调用setState方法

只是我的意见,但这是一个非常。。。。设置标题的有趣方式。在我看来,仅仅使用角度http拦截器要容易得多,因为这正是它们的用途


可能是当您使用选择器时,数据是不可变的,导致选择器失败。使用
selectSnapshot
时,您将收到处于您状态的内容的副本,这允许您对数据进行变异。

我在某些情况下使用拦截器,但这与拦截器无关<正在调用代码>设置状态
。有趣的是,服务并没有做http请求的事件,同样的事情也会发生。