【发布时间】:2020-07-29 05:15:15
【问题描述】:
我正在尝试创建一个函数,我可以在我的模板中调用一个名为 hasPermission 的字符串。但是,当我调用它时,vuex 返回一个 promise 对象。无论如何我可以让它返回一个布尔值吗?
hasPermission({ state }, permission) {
for (var i = 0; i < state.user.permissions.length; i++) {
var perm = state.user.permissions[i];
if (perm.name == permission) {
return true;
}
}
return false;
}
我希望能够像 v-if="hasPermission("test") 那样简单地调用它,然后根据响应显示出来。但是我很难做到这一点。希望任何你可以给建议:)
【问题讨论】:
-
您可以使用
Promise.resolve(true)和Promise.reject(false。 Vuex 不应该返回一个 promise 对象,除非你试图直接从dispatch调用中读取。 -
那会返回 Promise.resolve(true) 吗?上述功能也在行动中。 @UtsavPatel
-
如果是一个动作,那么你应该
commit到 vuex 存储并从mapState或mapGetters读取值。 -
那么我将如何检查一个值是否在这样的数组中?有没有办法用 Vuex 完成上述功能?
-
您正在调度一个名为
hasPermission的操作,它接受一个名为permission的参数。所以你会知道permission是否是一个数组。