-
Notifications
You must be signed in to change notification settings - Fork 3.7k
Open
Description
发行方式
App
具体平台
安卓12
开发环境
Windows
项目创建方式
HBuilderX
依赖版本
hbuildx:4.76
package.json 如下
{
"name": "app",
"version": "1.0.0",
"main": "main.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"@vant/area-data": "^2.0.0",
"dayjs": "^1.11.13",
"h5plus-hotfix": "^1.0.2",
"image-tools": "^1.4.0",
"jquery": "^3.6.1",
"mathjs": "^11.8.0",
"uview-ui": "^1.8.4"
}
}
问题描述
本地运行 app 在模拟器中打开,控制台没有报错信息,但是自定义指令没有生效,感觉可能是 没有正确的将 dom 节点删除
重现步骤
项目是vue2,打包成 app 后打开项目发现自定义指令没有生效,在 h5 模式下运行也是没有问题的,然后排查了一下是自定义指令拿到的 el 执行removeChild 函数好像没有真的删除掉节点。
自定义指令逻辑:判断是否有权限没有权限则删除 dom
本地运行到模拟器中 hbuilderx 控制台没有报错信息,并且正确的运行完了代码,但是页面上的节点没有被删除
指令代码如下:
inserted(el, binding, vnode) {
const { value } = binding
const all_permission = "*:*:*";
const permissions = store.getters && store.getters.permissions
if (value && Array.isArray(value) && value.length > 0) {
const permissionFlag = value
const hasPermissions = permissions.some(permission => {
return all_permission === permission || permissionFlag.includes(permission)
})
console.log('是否有权限',hasPermissions)
if (!hasPermissions) {
// 执行到这里了
el.parentNode && el.parentNode.removeChild(el)
console.log('执行成功')
}
} else {
throw new Error(`请设置操作权限标签值`)
}
}
期望行为
No response
实际行为
No response
截图或录屏
No response
Metadata
Metadata
Assignees
Labels
No labels