如何使用选择快照?
How to use selectSnapshot?
我有一个守卫检查状态是否有令牌。
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;
}
}
我收到一个错误。
属性 'token' 在类型 'AuthenticationState'
上不存在
你在这里犯的错误是你假设 lambda 的状态参数是你的 AuthenticationState
它实际上是整个应用程序状态,它是 AuthenticationState
.你应该像这样传递你的选择器:
canActivate(): boolean {
const token = this.store.selectSnapshot(AuthenticationState.token);
if (!token) {
return true;
}
this.router.navigate(['home']);
return false;
}
几天前 NGXS 的作者实际上就这个主题发表了一篇 post:
https://medium.com/@amcdnl/authentication-in-ngxs-6f25c52fd385
我有一个守卫检查状态是否有令牌。
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;
}
}
我收到一个错误。 属性 'token' 在类型 'AuthenticationState'
上不存在你在这里犯的错误是你假设 lambda 的状态参数是你的 AuthenticationState
它实际上是整个应用程序状态,它是 AuthenticationState
.你应该像这样传递你的选择器:
canActivate(): boolean {
const token = this.store.selectSnapshot(AuthenticationState.token);
if (!token) {
return true;
}
this.router.navigate(['home']);
return false;
}
几天前 NGXS 的作者实际上就这个主题发表了一篇 post: https://medium.com/@amcdnl/authentication-in-ngxs-6f25c52fd385