错误:'string | null‘类型的参数不能赋值给'string’类型的参数。类型'null‘不可赋值给类型’string‘。to (2345)
错误行: this.setSession(res.body._id,res.headers.get('x-access-token'),res.headers.get('x-refresh-token'));
constructor(private http: HttpClient, private webService: WebRequestService, private router: Router) { }
login(email: string, password: string) {
return this.webService.login(email, password).pipe(
shareReplay(),
tap((res: HttpResponse<any>) => {
// auth tokens will be in the header of this response
this.setSession(res.body._id, res.headers.get('x-access-token'), res.headers.get('x-refresh-token'));
console.log('logged in');
console.log(res);
})
)
}
logout() {
this.removeSession();
}
private setSession(userId: string, accessToken: string, refreshToken: string) {
localStorage.setItem('user-id', userId);
localStorage.setItem('access-token', accessToken);
localStorage.setItem('refresh-token', refreshToken);
}
private removeSession() {
localStorage.removeItem('user-id');
localStorage.removeItem('access-token');
localStorage.removeItem('refresh-token');
}
}```发布于 2021-06-23 04:37:44
它看起来像是参数res.body._id,res.headers.get('x-access-token'),res.headers.get('x-refresh-token')中的一个值为空值,并且您将它们的类型定义为字符串。
刷新到console.log(res.body._id,res.headers.get('x-access-token'),res.headers.get(‘x- -Try -token’)),看看哪一个返回null。
将private setSession(userId: string, accessToken: string, refreshToken: string)的声明更改为private setSession(userId: string|null, accessToken: string|null, refreshToken: string|null)的-Try
https://stackoverflow.com/questions/68090252
复制相似问题