当我尝试使用在堆积的生命周期方法中来自getter的loggingUser时,抛出(承诺)TypeError:无法读取未定义错误的属性'loggedUser'。
computed: {
...mapGetters({
loggedUser: 'auth/loggedUser',
users: 'users/getAllUsers',
}),
并在已安装的诺言中尝试过滤掉loggingUser
mounted() {
...
.then(function(res) {
this.groupedUsers = _.filter(res, function(groupedUser) {
return groupedUser.userId !== this.loggedUser.userId;
});
}
它在下一行中引发错误。
如何解决?
答案 0 :(得分:0)
错误显示Cannot read property 'loggedUser' of undefined
。您的代码为this.loggedUser
,因此我假设this
未定义。尝试发送this
。
公共trope在外部上下文中(内部安装)曾经是that = this
,或者通过将其作为函数的参数发送(在.then fn内部),尽管更现代和更简单的方法是简单地使用箭头函数() => {}
,在此示例中,该函数允许您访问外部范围。
以任何一种方式,console.log(this)
直到获得参考。问题不在范围内this
。
答案 1 :(得分:0)
始终使用箭头功能不会丢失上下文
mounted() {
...
.then((res) => {
this.groupedUsers = _.filter(res, (groupedUser) => {
return groupedUser.userId !== this.loggedUser.userId;
});
}