【发布时间】:2017-02-16 09:02:08
【问题描述】:
在表单组件的上下文中工作:
我试图向用户显示表单的状态“待定、成功、错误、原始”。我不想将这些状态放在商店中,因为它们是“临时状态”。
我有一个效果:
@Effect()
addTagToVideoEffect_ = this.appState_
.ofType(TagActions.ADD_TAG_TO_VIDEO)
.map<AddTagToVideo>(action => action.payload)
.switchMap((addTag: AddTagToVideo) => this.dtsiVideosService.addTagToVideo(addTag)
.map((addTag: AddTagToVideo) => TagReducers.addTagToVideoComplete(addTag))
.catch((err) =>Observable.throw(err))
);
在我的表单组件中,我发送TagActions.ADD_TAG_TO_VIDEO 并订阅它:
onTag(tag: TagEntity) {
this.subscription = this.tagActions.addTagToVideoEffect_.subscribe(
this.onAddTagSuccess,
this.onAddTagError
);
this.tagActions.addTagToVideo({videoId: this.videoId, tag: tag});
}
.tagActions.addTagToVideoEffect_.subscribe 导致我的效果被调用了两次。我们如何才能在视图中获得效果的结果,而无需为所有这些短暂状态经过商店?并且没有两次调用的效果......
【问题讨论】: