我正在使用 ngrx/effects。我想根据以下情况分派不同的操作foo
商店里的状态。
这就是我现在正在做的:
@Effect() foo1$ = this.updates$
.whenAction(Actions.FOO)
.filter(obj => !obj.state.product.foo)
.map<string>(toPayload)
.map(x => ({ type: Actions.BAR1, payload: { x }}));
@Effect() foo2$ = this.updates$
.whenAction(Actions.FOO)
.filter(obj => obj.state.product.foo)
.map<string>(toPayload)
.map(x => ({ type: Actions.BAR2, payload: { x }}));
有没有办法使用 RxJS 5 运算符,例如partition
, groupBy
, if
, case
in 这个帖子 https://stackoverflow.com/questions/32594357/rxjs-modeling-if-else-control-structures-with-observables-operators?我现在无法正确使用它。
有 2 个独立的效果源就可以了。否则就简单一点:
@Effect() foo$ = this.updates$
.whenAction(Actions.FOO)
.map(({action, state}) => {
if (state.product.foo) {
return { type: Actions.CHAT_GET_MESSAGES2, payload: { action.payload }};
} else {
return { type: Actions.CHAT_GET_MESSAGES, payload: { action.payload }};
}
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)