Может кто-нибудь объяснить, когда именно называется selector
подписка?Мое предыдущее понимание было, когда редуктор изменяет state
(создается некоторая разница), вызывается selector
.Но в следующем коде этого не происходит.
Следующий селектор (строка A) не вызывается при отправке SaveVersionSuccess
.В редукторе меняю state.version.versions[0].updated_fields.workflow
с true
на false
.
Может кто-нибудь объяснить почему? stackblitz
@Select(state => state.version.versions) version$: Observable<any[]>;
ngOnInit(): void {
this.version$.subscribe((versions) => {//line A
alert()
});
}
test(){
this.store.dispatch([
new SaveVersionSuccess({bot:null, version:{id: 1, updated_fields:{'workflow':false}}})
]);
Редуктор
@Action(SaveVersionSuccess)
SaveVersionSuccess({patchState, setState, getState, dispatch,}: StateContext<ICodeInputState>, {payload}: SaveVersionSuccess) {
let state = getState();
let index = state.versions.findIndex((version) => version.id === payload.version.id);
let index_pristine = state.versions_pristine.findIndex((version) => version.id === payload.version.id);
state.versions[index] = {
...payload.version
};
state.versions_pristine[index_pristine] = {
...payload.version
};
patchState({...state});
}
Исходное состояние
const codeInputState: ICodeInputState = {
versions: [{id: 1, updated_fields:{'workflow':true}}],
versions_pristine: [{id: 1, updated_fields:{'workflow':true}}]
};