Обнаружение изменений для вложенных объектов в состоянии - PullRequest
0 голосов
/ 17 сентября 2018

Допустим, у нас есть состояние со следующей структурой:

@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' } );
}

Ни одно из следующих наблюдаемых значений не излучает:

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

Я не специалист по программированию на rxjs, но это кажется странным, есть идеи?

1 Ответ

0 голосов
/ 18 сентября 2018
  1. Попробуйте добавить название штата pg вот так obs1$ = store.select( state => state.pg.docs ).

  2. Название штата не требуется, если вы выбираете через @Selector().

  3. Я предполагаю, что нотация объекта кода patchState () является лишь примером.

...