我的状态可以取-开启,干燥和关闭 我已经编写了一个选择器以从商店访问它。 基本上,如果state =“ dry”,我必须做些事情。但是,如果状态从关闭变为“干燥”,则我不应该执行该操作。
我可以通过某种方式访问先前的值吗?
export const EnvironmentSelector = createSelector(S1selector, S2selector,
(s1, s2) => {
if (s1=="foo" && s2=== "dry")
return true;
else
return false;
});
this.systemStateEnvironmentSelector$ =this.store.select(EnvironmentSelector);
this.systemStateEnvironmentSelector$.subscribe(val => {
if (val) {
//call api()`enter code here`
}
});
答案 0 :(得分:0)
您可以使用扫描来创建状态堆栈,其中堆栈[1]为最新状态,堆栈[0]为先前状态。然后,您可以添加条件逻辑。
this.systemStateEnvironmentSelector$.scan((curr,stack)=>{
stack.push(curr)
stack.shift()
return stack
},[null,null])
..... further conditional operation
.subscribe(console.log)