我有一个带有组件的模块,该组件调度一个FETCH动作,该动作从API获取数据,然后调度一个RECEIVED动作。运行正常。
然后,我将模型,操作和状态复制到另一个模块和组件(具有不同的获取和接收),并且它不起作用。记录器显示已分派的操作,但未执行代码。
documents.action.ts
export class FetchFolders {
static readonly type = '[Documents] Fetch folders';
constructor(public payload: string) { }
}
documents.state.ts
@Action(FetchFolders)
FetchFolders(state: StateContext<DocumentStateModel>, { payload }: FetchFolders) {
console.log('inside');
return this.http.get(`assets/fake-data/${payload}/documents.json`)
.pipe(
tap(result => this.store.dispatch(new ReceiveFolders(<DocumentFolder[]>result)))
);
}
我已将代码减少到最少,以检查是否一切正常。还检查了导入(有时我从错误的lib获取了导入),仍然没有运气。
知道发生了什么吗?
所以我缺少的一点是将其声明给模块
@NgModule({
imports: [
CommonModule,
MenuModule,
FormModule,
RouterModule,
NgxsModule.forFeature([DocumentState])
],
declarations: [DocumentListComponent, DocumentsComponent],
exports: [DocumentsComponent]
})
export class DocumentModule { }