RXJS 更新 Subject 类似于 Svelte 商店?
RXJS update Subject similar to Svelte stores?
有没有办法用当前值的实例更新 RXJS 主题,例如 Svelte 商店?
目前我有:
const materials = someMethodToGetResults();
const tmp = this.activeFilters.value;
tmp.materials = materials;
this.activeFilters.next(tmp);
我认为这不是很优雅。我总是需要更新整个对象,而我只真正需要更新属性。我认为 Svelte 解决了这个超级优雅的问题,商店有这样的更新方法:
this.activeFilters.update(current => {
current.materials = someMethodToGetResults();
return current;
});
我错过了什么吗? RXJS 的学习曲线非常陡峭。
谢谢
没有这样的内置主题,但您可以构建自己的主题
export class StoreSubject extends BehaviorSubject {
update(updateFn) {
this.next(updateFn(this.getValue());
}
}
用法:
const store = new StoreSubject(initialValue);
// .. later:
store.update(val => {
// do something
return val
});
有没有办法用当前值的实例更新 RXJS 主题,例如 Svelte 商店? 目前我有:
const materials = someMethodToGetResults();
const tmp = this.activeFilters.value;
tmp.materials = materials;
this.activeFilters.next(tmp);
我认为这不是很优雅。我总是需要更新整个对象,而我只真正需要更新属性。我认为 Svelte 解决了这个超级优雅的问题,商店有这样的更新方法:
this.activeFilters.update(current => {
current.materials = someMethodToGetResults();
return current;
});
我错过了什么吗? RXJS 的学习曲线非常陡峭。 谢谢
没有这样的内置主题,但您可以构建自己的主题
export class StoreSubject extends BehaviorSubject {
update(updateFn) {
this.next(updateFn(this.getValue());
}
}
用法:
const store = new StoreSubject(initialValue);
// .. later:
store.update(val => {
// do something
return val
});