vue.js - 如何在 vue 计算属性中映射结果
问题描述
我们的应用程序有多个位置,每个位置的 accessGroup 为 a、b、c 或 d。我们的用户有一组 accessGroups ['a', 'c'] 等。
在我们的位置页面上,myLocations 应该返回 location.accessGroup 包含在其 accessGroup 数组中的位置。
computed: {
...mapState(['currentUser', 'locations', 'userProfile']),
}
myLocations: function() {
return this.locations.filter((location) => {
return location.accessGroup === this.userProfile.accessGroup
})
},
解决方案
看起来您正在将字符串与数组进行比较。尝试这个:
// assuming userProfile.accessGroup is an array of strings like ['a', 'c'] etc
// and location.accessGroup is a string: 'a', 'b', 'c', or 'd'
myLocations () {
return this.locations.filter((location) => {
return this.userProfile.accessGroup.indexOf(location.accessGroup) >= 0
})
}
推荐阅读
- scala - 带有替代方法的重载方法值选择
- node.js - 如何使用express nodejs从mongoose中的Id数组中获取所有对象?
- reactjs - 如何在 React Native 的样式表中使用变量?
- php - AJAX 响应包括来自页面的 html 而不是单个值
- google-drive-api - PHP,谷歌驱动器总是上传到我自己的驱动器?
- python - 在运行 Python 进程中缓存 Django 相关字段
- php - Sum Pivot Table 的列 Laravel
- java - 未能执行目标 org.apache.maven.plugins:maven-compiler-plugin:3.1
- apache-spark - 如何防止针对 CSV 胶水目录源的火花查询包含标题?
- swagger - 将 Swagger Api 转换为 Asciidoc