阿狸的祈祷
阿狸的祈祷
  • 发布:2022-05-27 15:19
  • 更新:2022-05-31 14:24
  • 阅读:517

【报Bug】Cannot read property 'appendChild' of null 在 module="renderScript" lang="renderjs" 中

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: w10

HBuilderX类型: 正式

HBuilderX版本号: 3.4.7

手机系统: Android

手机系统版本号: Android 8.0

手机厂商: 华为

手机机型: huawei p9

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

示例代码:

<script module="renderScript" lang="renderjs">
export default {
methods: {
// 接收逻辑层发送的数据
receiveMsg(newValue, oldValue, ownerVm, vm) {
const view = document.getElementById('renderjs-view')
const button = document.createElement('div')
button.innerHTML = newValue
view.appendChild(button)
},
emitData(e, ownerVm) {}
}
}
</script>

操作步骤:

view.appendChild(button)

预期结果:

无报错

实际结果:

报错

bug描述:

TypeError: Cannot read property 'appendChild' of null at view.umd.min.js:1

2022-05-27 15:19 负责人:无 分享
已邀请:
FullStack

FullStack - 【插件开发】【专治疑难杂症】【ios上架、马甲包、白包、过审、已成功上架过几百个】【多款插件已上架:https://ext.dcloud.net.cn/publisher?id=22130】【非诚勿扰】QQ:543610866

提供完整demo,方便排查

  • 阿狸的祈祷 (作者)

    亲爱的,代码已经实例上传,这个问题对于我的app很严重,这个问题导致ios一按返回就黑屏,安卓则只是报错

    2022-05-30 09:07

  • FullStack

    回复 阿狸的祈祷: 放在 mounted 里添加buttom

    2022-05-30 09:22

  • FullStack

    回复 FullStack: 或者加延迟

    2022-05-30 09:24

阿狸的祈祷

阿狸的祈祷 (作者)

这就是代码,引进去就能复现了

DCloud_UNI_GSQ

DCloud_UNI_GSQ

时机问题

解决方案:

增加判断

export default { methods: { // 接收逻辑层发送的数据 receiveMsg(newValue, oldValue, ownerVm, vm) { const view = document.getElementById('renderjs-view'); if(!view){return}; const button = document.createElement('div') button.innerHTML = newValue view.appendChild(button) }, emitData(e, ownerVm) {} } }
  • 阿狸的祈祷 (作者)

    好的,已经解决,不过还是的加延迟执行

    2022-05-31 17:39

该问题目前已经被锁定, 无法添加新回复