微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Angular Route Resolve无法与NgRx一起使用存储预先填充的数据

如何解决Angular Route Resolve无法与NgRx一起使用存储预先填充的数据

当我拥有prepopopulatedData时,Angular Route Resolver无法正常工作。 PFB下面的代码。让我知道如何解决

@Injectable()
export class CommonDataResolver implements Resolve<CommonDataType> {
    constructor(private store: Store<AppState>,private actions$: Actions) {}
    resolve(
        route: ActivatedRouteSnapshot,state: RouterStateSnapshot
    ): Observable<CommonDataType> | Promise<CommonDataType> {
        return this.store.select('commonState').pipe(
            take(1),map((commonState) => {
                const { skills } = commonState;
                console.log(skills);
                if (skills.length > 0) {
                    return { skills };
                }
                return null;
            }),switchMap((data: CommonDataType) => {
                console.log(data);
                if (!data || data.skills.length < 1) {
                    this.store.dispatch(new LoadingStart());
                    return this.actions$.pipe(ofType(LOADING_SUCCESS),take(1));
                } else {
                    return of(data);
                }
            })
        );
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。