三水sanshui
三水sanshui
  • 发布:2022-07-12 10:36
  • 更新:2022-07-12 10:36
  • 阅读:230

【报Bug】H5如果用createApp去渲染全局组件,组件内包含button组件就还报警告 + 报错

分类:uni-app

产品分类: uniapp/H5

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win11,vue3

浏览器平台: Chrome

浏览器版本: 版本 103.0.5060.114(正式版本) (64 位)

项目创建方式: CLI

CLI版本号: 3.0.0-alpha-3031320220314002

操作步骤:
import xxx from '@/components/xxx.vue'  
import { createApp } from 'vue' // 导入需要的vue函数  
const productDetailsParent = document.createElement('div')// 创建一个dom容器节点div  
productDetailsParent.setAttribute('class', 'product-details') // 为dom添加一个唯一标识类(无实质功能)  
document.body.appendChild(productDetailsParent) // 容器追加到body中  
let productDetailsApp = null  
// #endif  
// 使用函数时需要传入的组件的props属性  
export default (config) => {  
    // #ifdef H5  
    try {  
        productDetailsApp?.unmount()  
        productDetailsApp = createApp(xxx, {  
            ...config,  
            modelValue: true  
        })  
        productDetailsApp.mount(productDetailsParent)  
    } catch (error) {  
        console.log(error)  
    }  
    // #endif  
}

预期结果:

不应该报错

实际结果:

报错

bug描述:

警告加报错在下面截图,模拟也非常简单,随便写一个组件 里面要包含按钮组件button,然后用一下代码去全局导入调用就会报错,代码入下,我下面是一个弹窗,里面只要不包含button组件,就可以正常展示:

import xxx from '@/components/xxx.vue'  
import { createApp } from 'vue' // 导入需要的vue函数  
const productDetailsParent = document.createElement('div')// 创建一个dom容器节点div  
productDetailsParent.setAttribute('class', 'product-details') // 为dom添加一个唯一标识类(无实质功能)  
document.body.appendChild(productDetailsParent) // 容器追加到body中  
let productDetailsApp = null  
// #endif  
// 使用函数时需要传入的组件的props属性  
export default (config) => {  
    // #ifdef H5  
    try {  
        productDetailsApp?.unmount()  
        productDetailsApp = createApp(xxx, {  
            ...config,  
            modelValue: true  
        })  
        productDetailsApp.mount(productDetailsParent)  
    } catch (error) {  
        console.log(error)  
    }  
    // #endif  
}
2022-07-12 10:36 负责人:无 分享
已邀请:

要回复问题请先登录注册