Vue.js Vuex返回布尔值?

Vue.js Vuex返回布尔值?,vue.js,vuex,Vue.js,Vuex,我正在尝试创建一个可以在模板中调用的函数,名为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 == pe

我正在尝试创建一个可以在模板中调用的函数,名为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;
}
hasPermission({state},permission){
for(var i=0;i

我想简单地把它称为v-if=“hasPermission”(“test”),然后根据响应进行演示。但是我很难做到这一点。希望你能给出任何建议:)

你可以让
hasPermission
成为一个getter:

getter:{
hasPermission:(状态)=>(权限)=>{
for(var i=0;i
使用
mapGetters
将其包含在组件中:

从“vuex”导入{mapGetters};
计算:{
…映射获取程序(['hasPermission'])
}
在模板中使用它,如:

v-if=“hasPermission('test')”
请记住,这些getter不像普通的getter那样被缓存,但是操作也一样


这里有一个

您可以执行
Promise.resolve(true)
Promise.reject(false)
。但是Vuex不应该返回Promise对象,除非您尝试直接从
dispatch
调用读取。这就是返回Promise.resolve(true)?上面的函数也在操作中。@utsavpateli如果它是一个操作,那么您应该
提交到vuex存储并从
mapState
magetters
读取值。那么我该如何检查值是否在这样的数组中?有没有办法用vuex执行上面的函数?您正在调度一个名为
haspowermission
的操作,它接受一个名为
permission
的参数。这样您就可以知道
permission
是否是数组。我认为在OP
haspowermission
中,haspowermission实际上是一个操作。@UtsavPatel-是的,不需要。这正是我要找的类型!谢谢!我是vue和vue的新手vuex,我想我需要多看看vuex,哈哈。