状态中嵌套对象的变化检测
Change detection for nested objects in a state
假设我们有一个具有以下结构的状态:
@State<StateModel>({
name: 'pg',
defaults: {
docs: {
doc1: {
id: 'doc1',
content: 'foo',
}
doc2: {
id: 'doc2',
content: 'bar'
}
}
}
变化检测是如何工作的?如果我做改变
@Action(UpdateContent)
update(ctx: StateContext<StateModel>) {
ctx.patchState( { docs.doc2.content: 'something else' } );
}
以下 Observable 的 None 发出一个值:
obs1$ = store.select( state => state.docs );
obs2$ = store.select( state => state.docs.docs2 );
obs2$ = store.select( state => state.docs.docs2.content );
我不是 rxjs 编程方面的专家,但看起来很奇怪,有什么想法吗?
尝试像这样 obs1$ = store.select( state => state.pg.docs )
添加州名称 pg。
如果您通过 @Selector()
选择,则不需要州名称。
我假设你的 patchState() 代码的对象符号只是一个例子。
假设我们有一个具有以下结构的状态:
@State<StateModel>({
name: 'pg',
defaults: {
docs: {
doc1: {
id: 'doc1',
content: 'foo',
}
doc2: {
id: 'doc2',
content: 'bar'
}
}
}
变化检测是如何工作的?如果我做改变
@Action(UpdateContent)
update(ctx: StateContext<StateModel>) {
ctx.patchState( { docs.doc2.content: 'something else' } );
}
以下 Observable 的 None 发出一个值:
obs1$ = store.select( state => state.docs );
obs2$ = store.select( state => state.docs.docs2 );
obs2$ = store.select( state => state.docs.docs2.content );
我不是 rxjs 编程方面的专家,但看起来很奇怪,有什么想法吗?
尝试像这样
obs1$ = store.select( state => state.pg.docs )
添加州名称 pg。如果您通过
@Selector()
选择,则不需要州名称。我假设你的 patchState() 代码的对象符号只是一个例子。