首页 > 解决方案 > (承诺)TypeError:无法读取未定义的属性“loggedUser”

问题描述

当我尝试使用来自 mounded 生命周期方法中的 getter 的 loggedUser 时,它会抛出(承诺中的)TypeError:无法读取未定义错误的属性“loggedUser”。

computed: {
    ...mapGetters({
      loggedUser: 'auth/loggedUser',
      users: 'users/getAllUsers',
    }),

在我尝试过滤掉loggedUser的地方的承诺中

mounted() {
...
      .then(function(res) {
           this.groupedUsers = _.filter(res, function(groupedUser) {
            return groupedUser.userId !== this.loggedUser.userId;
          });
}

它在以下行中引发错误。

怎么可能修复?

标签: vue.jsvuejs2vue-componentvuex

解决方案


始终使用箭头函数以免丢失上下文

mounted() {
...
      .then((res) => {
           this.groupedUsers = _.filter(res, (groupedUser) => {
            return groupedUser.userId !== this.loggedUser.userId;
          });
}

推荐阅读