When I use a directive in an el-dropdown-item element-plus I get the following warning: [Vue warn]: Runtime directive used on component with non-element root node. The directives will not function as intended.
function checkPermission(el, binding) {
const { value } = binding
const roles = store.getters && store.getters.roles
if (value) {
if (value.length > 0 && value instanceof Array) {
const permissionRoles = value
const hasPermission = roles.some(role => {
return permissionRoles.includes(role)
})
if (!hasPermission) {
el.parentNode && el.parentNode.removeChild(el)
}
} else {
throw new Error(`need roles! Like v-permission="['ADMINISTRATOR', 'EXTERNAL_ANALYST']"`)
}
}
}
export default {
mounted(el, binding) {
checkPermission(el, binding)
},
update(el, binding) {
checkPermission(el, binding)
}
}