[英]Uncaught (in promise): TypeError: Cannot read property 'userSubject' of undefined TypeError: Cannot read property 'userSubject' of undefined
我想打电话
login(username, password) {
return Parse.User.logIn(username, password)
.then(function (user) {
// store user details and jwt token in local storage to keep user logged in between page refreshes
localStorage.setItem('user', JSON.stringify(user));
console.log(user);
this.userSubject.next(user);
return user;
});
}
像这样
login(username, password) {
return this.http.post<user>(`${environment.apiUrl}/users/authenticate`, { username, password })
.pipe(map(user => {
// store user details and jwt token in local storage to keep user logged in between page refreshes
localStorage.setItem('user', JSON.stringify(user));
console.log(user);
this.userSubject.next(user);
return user;
}));
}
但这会导致错误
Uncaught (in promise): TypeError: Cannot read property 'userSubject' of undefined
TypeError: Cannot read property 'userSubject' of undefined
问题是您使用普通的 function 而不是箭头 function。 一个正常的 function 有自己的this
指针。
只需使用箭头 function 代替。
login(username, password) {
return Parse.User.logIn(username, password)
.then((user) => { // <-- here is the change
localStorage.setItem('user', JSON.stringify(user));
console.log(user);
this.userSubject.next(user);
return user;
});
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.