状態にトークンがあるかどうかをチェックするガードがあります。
canActivate(): boolean {
const token = this.store.selectSnapshot((state: AuthenticationState) => state.token);
if (!token) {
return true;
}
this.router.navigate(['home']);
return false;
}
それから私はこのようなものを持っています:
export class AuthenticationState {
@Selector()
static token(state: AuthenticationStateModel) {
return state.token;
}
}
エラーが発生します。プロパティ「トークン」はタイプ「AuthenticationState」に存在しません
ここでの間違いは、ラムダの状態パラメーターがAuthenticationState
であり、実際にはAuthenticationState
の親であるアプリケーション全体の状態であると想定していることです。むしろ、次のようにセレクターを渡す必要があります。
canActivate(): boolean {
const token = this.store.selectSnapshot(AuthenticationState.token);
if (!token) {
return true;
}
this.router.navigate(['home']);
return false;
}
数日前にNGXSの作者によるこの正確なトピックに関する投稿が実際にありました: https://medium.com/@amcdnl/authentication-in-ngxs-6f25c52fd385