NGRX - 操作可能没有未定义的“类型”属性

时间:2016-12-31 22:10:18

标签: angular reactjs redux rxjs ngrx

尝试让这个ngrx $serializedString = pg_unescape_bytea($contentsOfPostGresByteAField);使用http调用。

@Effect

如果我交换下面的简单回报就行了

@Effect() loadPosts$ = this.actions$ .ofType(post.ActionTypes.LOAD) .map(() => { return this.postService.get() .map(posts => { return new post.LoadSuccessAction(posts)}) .catch(() => of(new post.LoadSuccessAction([]))); })

我的return new post.LoadSuccessAction([['one'], ['two']]) postService方法非常简单

get

不确定可能会导致这种情况或在何处查看。

修改

get() { return this.http.get(`{this.API_PATH}/api/v1/en/posts?limit=10&offset=0`) .map(res => res.json()); } 看起来像这样

LoadSuccessAction

1 个答案:

答案 0 :(得分:4)

您的服务的结果是一个可观察的结果,并且从您的合成效果中的example[:,0].运算符返回,看到效果会发出一个可观察的 - 而不是一个动作。

ngrx商店询问map属性的observable,而不是找到一个,会影响你提到的错误。

RxJS包含几个运算符,它们将映射的observable'展平'到组合的observable中。而你可能想要的是switchMaptype运算符将订阅返回的observable,并将其值发送到组合的observable的值流中。此外,如果在挂起的服务调用完成之前发生了另一个switchMap操作,则挂起的调用的observable将被取消订阅并被忽略 - 这可能是您想要的行为。

如果您不希望忽略待处理的服务调用,则可以使用concatMap