已记录但未触发的操作

问题描述 投票:3回答:1

我有一个带有组件的模块,该组件调度一个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获取了导入),仍然没有运气。

知道发生了什么吗?

angular action ngxs
1个回答
2
投票

所以我缺少的一点是将其声明给模块

@NgModule({
  imports: [
    CommonModule,
    MenuModule,
    FormModule,
    RouterModule,
    NgxsModule.forFeature([DocumentState])
  ],
  declarations: [DocumentListComponent, DocumentsComponent],
  exports: [DocumentsComponent]
})
export class DocumentModule { }
© www.soinside.com 2019 - 2024. All rights reserved.