类型'Observable <void>'不可分配给类型'void |动作| Observable <Action>'。添加效果时

时间:2019-11-12 23:35:16

标签: javascript angular typescript redux ngrx

添加效果时,

'run'给出错误。也尝试手动返回字符串,数字等,但是它不起作用。

效果代码:

@Effect() 
getRoles$: Observable<Roles[]> = this.dataPersistence.fetch(CreateActionTypes.GetRoles, {
    run: (action: GetRoles) => {

       return this.formService
         .getRoles()
         .pipe(map(roles => {
           return new RolesLoaded(roles);
          }));
    },
    onError: (action: GetRoles, error) => {
      console.error(error);
      return new RolesLoadError(error);
    }
  });

错误消息:

  

apps / app / src / app / + state / create.effects.ts(32,5)中的错误:

     

错误TS2322:
  类型'(action:GetRoles)=> Observable '不是   可分配给类型'(a:GetRoles,state ?: CreatePartialState)=> void   |动作|可观察的'。
  类型'Observable
'不能分配给类型' void |动作|可见”。

1 个答案:

答案 0 :(得分:0)

@Effect应该返回Action的可观察值,而不是Action[]的{​​{1}}。

就您而言,这似乎是多个概念之间的混淆。

以下是Action

的示例
@Effect