0

假设我们有一个具有以下结构的状态:

@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 都不会发出值:

obs1$ = store.select( state => state.docs );
obs2$ = store.select( state => state.docs.docs2 );
obs2$ = store.select( state => state.docs.docs2.content );

我不是 rxjs 编程方面的专家,但看起来很奇怪,有什么想法吗?

4

1 回答 1

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

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

  3. 我假设您的 patchState() 代码的对象表示法只是一个示例。

于 2018-09-18T10:01:00.527 回答