[英]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.