为什么filter
不与this.userId
一起使用,而是与硬代码值"admin"
一起使用?我该如何解决?
computed: {
UidMessages: function() {
return this.Messages.filter(function(m) {
return m.to == this.userId;
})
}
},
它确实有效=>
computed: {
AMesseg: function() {
return this.Messages.filter(function(m) {
return m.to== "admin"
})
}
},
我认为是因为字符串比较
谢谢。
答案 0 :(得分:1)
this
在这里获得undefined
,因为它没有绑定到您的fn
。使用arrow syntax
将this
绑定到fn
,它应该可以工作
computed: {
UidMessages: function() {
return this.Messages.filter(m => {
return m.to == this.userId
})
}
},
答案 1 :(得分:0)
您可以将arrow
函数用作mentioned in answer by @Satyam Pathak,也可以声明this.Messages.filter
之外的对象,并在有条件的情况下使用该对象。如下所示。
computed: {
UidMessages: function() {
let userId = this.userId; // declare and assign userId value.
return this.Messages.filter(function(m) {
return m.to == userId; // use userId variable for condition.
});
}
}
PS 。有关更多详细信息,请参见How does the "this" keyword work?。