状态中嵌套对象的变化检测

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 编程方面的专家,但看起来很奇怪,有什么想法吗?

  1. 尝试像这样 obs1$ = store.select( state => state.pg.docs ) 添加州名称 pg

  2. 如果您通过 @Selector() 选择,则不需要州名称。

  3. 我假设你的 patchState() 代码的对象符号只是一个例子。