Я новичок в ngrx.API вызов не произойдет в ngrx-angular6. Я перепробовал все. Я не могу найти, где я не прав. весь день здесь потрачен впустую. :(
В результате я позвонил в службу и стал заметным
@Effect()
isFileFeed$ = this.dataPersistence.fetch(LandingActionTypes.LoadIsFileFeed, {
run: (action: LoadFileFeed, state: LandingState) => {
const url = `www.sample.com`;
this.service.apiRequest(url).pipe(
map(function(status){
new LoadFileSuccess(status);
}),
catchError(err => of(new LoadFileError(err.Description)))
);
},
onError: (action: LoadFileFeed, error) => {
console.error('Error', error);
return new LoadFileError(error);
}
});
В Сервисе я использовал трубу вместе с краном. если я звоню, подписывайся напрямую, API вызывает. но здесь это не будет вызывать любой API. Я также проверен на вкладке сети.
apiRequest(url){
return this.http.get<any>(url)
.pipe(tap(response =>
this.log(`Service :api success: ${url}`);
),
catchError(this.handleError)
);
}
вот мой код в селекторе
const getLandingState = createFeatureSelector<LandingState>('landing');
const getFileEnableStatus = createSelector(
getLandingState,
(state: LandingState) => state.isFileFeedEnabled
);
и я выполнил свой наблюдаемый через подписку в моем компоненте, как показано ниже.
this.landingPageStore.pipe(select(landingSelector.landingQuery.getFileEnableStatus)).subscribe(res=>{
this.isFileEnabled = res;
})