鉴于这个外观:
@Injectable()
export class LookupDataFacade
{
public saved$: Observable<boolean>;
public loaded$: Observable<boolean>;
public allLookups$: Observable<ILookup[]>;
public selectedLookup$: Observable<ILookup>;
constructor( protected store: Store<LookupDataPartialState> ) { }
loadAll()
{
this.store.dispatch( new LoadLookupData() );
}
...
}
这个效果类:
@Injectable()
export class LookupDataEffects
{
constructor(
protected actions$: Actions,
protected dataPersistence: DataPersistence<LookupDataPartialState>,
protected service: LookupDataService ) { }
@Effect()
loadLookupData$ = this.dataPersistence.fetch<LoadLookupData>( LookupDataActionTypes.Load,
{
run: ( action: LoadLookupData, state: LookupDataPartialState ) =>
{
return this.service.get().pipe( map( lookups => ( {
type: LookupDataActionTypes.Loaded,
payload: { data: lookups }
} ) ) );
},
onError: ( action: LoadLookupData, error: HttpErrorResponse ) => { this.handleError( error ); }
} );
...
handleError = function( error: HttpErrorResponse )
{
console.error( 'Error', error );
alert( error.message );
return new LookupDataError( error );
}
}
当页面加载时,会调用外观的“loadAll”方法。动作被调度,但适当的效果永远不会被执行。
在我将 NgRx 和 Nrwl 包升级到最新版本之前,这段代码可以正常工作(需要这样做来解决我遇到的“未捕获的 TypeError:ctorParameters.map 不是函数”致命错误)。
我没有看到任何错误,也没有表明失败的网络流量。
有人看到明显的错误吗?