dcloudio / uni-ui

基于uni-app的、全端兼容的、高性能UI框架
https://uniapp.dcloud.io/component/uniui/uni-ui.html
Apache License 2.0
1.9k stars 671 forks source link

非H5出现window报错undefined, popUp组件 #278

Closed cher0420 closed 3 years ago

cher0420 commented 3 years ago

问题描述 popUp组件在小程序端因为查找不到window出现报错

复现步骤 [复现问题的步骤]

  1. 启动 '...'
  2. 点击 '....'
  3. 查看

[或者可以直接贴源代码] Cannot read property 'addEventListener' of undefined"

found in

---> at node_modules/@dcloudio/uni-ui/lib/uni-popup/uni-popup.vue 预期结果 希望组件更新下容错

实际结果 Cannot read property 'addEventListener' of undefined"

found in

---> at node_modules/@dcloudio/uni-ui/lib/uni-popup/uni-popup.vue

系统信息:

补充信息 if(window){ //执行监听行为 }

Ulyssesyi commented 3 years ago

回退版本后是正常的,看代码是新版本在2月5号中加入的适配PC的代码后,popup.js中mounted里面的resize监听编译到微信小程序中了,我以为是mixin处理条件编译不正确,但是自己新建的测试项目使用mixin时uniapp还是可以正确处理条件编译的。最终@mehaotian希望可以看一下

mehaotian commented 3 years ago

cli 配置 easycom 在根目录下新建 vue.config.js ,添加配置

module.exports = {
    transpileDependencies: ['@dcloudio/uni-ui']
}

原因是cli项目下 node_modules 下的组件不会自动编译 ,所以有些条件编译失效 ,按如上配置可以让组件加入uni-app编译

mehaotian commented 3 years ago

问题已解决 ,暂时关闭 issue ,如仍有问题请 reopen issue 继续提问。