Я новичок в ngrx и у меня проблема с отпиской.Я использую как последние версии Angular, так и ngrx.
У меня есть CreateState и ModelState.После создания CreateState в диалоге я хочу скопировать CreateState как часть ModelState и затем очистить CreateState, чтобы диалог стал пустым.
Для этого я сначала получаю все состояние CreateState, а затем вызываю ActionModelState для копирования.
this.store$.select(CreateSelectors.selectCreateState).subscribe((state: CreateState.State) => {
this.store$.dispatch(new ModelActions.CreateAction(state));
this.router.navigateByUrl('/canvas');
});
После того, как я перешел на новую страницу, я вызываю действие для CreateState для очистки.
ngOnInit() {
this.store$.dispatch(new CreateActions.ClearAction());
}
Но похоже, что Выбрать подписку из моегопервая страница все еще прослушивает, поэтому при очистке CreateState запускается выбор и снова отправляется ModelActions.CreateAction.
Я пытался прослушивать только для .first()
Observable или отписываться от Observable, но Typescript говорит, что функции для.first()
или .unsubscribe()
.
Я что-то не так делаю?Должен ли я использовать другой подход для перемещения и очистки состояний?