ngrx:仅在发生 LoggedInAction 时转到 url
ngrx: go to url only when LoggedInAction has happened
我有这个问题,我必须等到我的令牌返回到我的身份验证服务器,然后才能调用我的 api,我想知道是否有一个很好的方法来等到我的 authState.token 是其他东西在调度 LoadMyStuffFromApi 之前为 null。
我有两个解析器:
登录解析器:
public resolve(route: Activate...): Observable<Action> {
this.store.dispatch(new LoginAction());
return this.actions$.ofType(LOGGED_IN_ACTION).take(1);
}
MyDataLoadedResolver:
public resolve(route: Activate...): Observable<Action> {
this.store.dispatch(new LoadDataAction());
return this.actions$.ofType(DATA_LOADED_ACTION).take(1);
}
然后我的路由器有
{
path: ':caseId',
component: CaseViewerComponent,
resolve: { login: LoginResolver, loadCase: MyDataLoadedResolver}
}
有没有办法让我等到登录解析器完成后再执行 loadCase 解析器,或者您会采用不同的方式吗?
在商店中,您可以设置名为 loggedIn = false 的默认值变量。在您进行 API 调用的地方,您可以订阅登录时的更改,并且只有 运行 一旦登录变为 true
我有这个问题,我必须等到我的令牌返回到我的身份验证服务器,然后才能调用我的 api,我想知道是否有一个很好的方法来等到我的 authState.token 是其他东西在调度 LoadMyStuffFromApi 之前为 null。
我有两个解析器:
登录解析器:
public resolve(route: Activate...): Observable<Action> {
this.store.dispatch(new LoginAction());
return this.actions$.ofType(LOGGED_IN_ACTION).take(1);
}
MyDataLoadedResolver:
public resolve(route: Activate...): Observable<Action> {
this.store.dispatch(new LoadDataAction());
return this.actions$.ofType(DATA_LOADED_ACTION).take(1);
}
然后我的路由器有
{
path: ':caseId',
component: CaseViewerComponent,
resolve: { login: LoginResolver, loadCase: MyDataLoadedResolver}
}
有没有办法让我等到登录解析器完成后再执行 loadCase 解析器,或者您会采用不同的方式吗?
在商店中,您可以设置名为 loggedIn = false 的默认值变量。在您进行 API 调用的地方,您可以订阅登录时的更改,并且只有 运行 一旦登录变为 true