actionList.includes is not a function?

作者站长头像
站长
· 阅读数 9

store.js方法:

actions: {
    async getBtnPermission({ commit }) {
      const res = await getBtnCode();
      const arr = res.split(',');
      console.log('按钮权限列表', arr);
      commit('updateBtnPerm', arr);
    },
  },

main.js内使用:

// 按钮权限指令
Vue.directive('has', {
  inserted: (el, binding) => {
    let actionList = store.dispatch('getBtnPermission');
    console.log('actionList', actionList);
    let values = binding.value;
    let hasPermission = actionList.includes(values);
    if (!hasPermission) {
      el.style = 'display:none';
      setTimeout(() => {
        el.parentNode.removeChild(el);
      }, 0);
    }
  },
});

为什么会报actionList.includes is not a function?

回复
1个回答
avatar
test
2024-07-14

await 呢? async 的返回值是个 promise

我看你也打印了 actionList

昂。actions 的返回是什么呢?commit 是指触发 mutation


所以你应该 await 一下,然后从 store 中读取一下 actionList

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容