Государство не установлено должным образом в NGXS

Функция входа в систему работает и отправляет, но состояние аутентификации остается "auth: {}", не уверен, что мне здесь не хватает..?

auth.model

export class AuthStateModel {
  token?: string;
  refresh_token?: string;
}

export class Login {
  static readonly type = '[Auth] Login';
  constructor(private email: string, private password: string) { }
}

export class Logout {
  static readonly type = '[Auth] Logout';
}

в компоненте

public login(email, password) {
  email = 'asd@asd.io';
  password = 'qwerty';
  this.store.dispatch(new Login(email, password));
}

auth.actions

@Action(Login)
login({ patchState }: StateContext < AuthStateModel >, { email, password }: Login) {
  return this.authService.login(email, password).pipe(
    tap(result => {
      patchState({
        token: result.token,
        refresh_token: result.refresh_token
      });
    })
  );
}

1 ответ

Вы определили @State декоратор, например,

@State<string[]>({
  name: 'animals',
  defaults: []
})

Взято с https://ngxs.gitbook.io/ngxs/concepts/state

Изменить: предыдущий ответ работал для меня, но еще не нашел причину, почему

Другие вопросы по тегам