3.7.3 释放scrollview的时候报错

  • Creator 版本: 3.7.3,3.5.2

  • 目标平台: 360安全浏览器

  • 重现方式:断点调试带scrollview的窗口,断点过后立即释放scrollview

  • 首个报错:
    index.js:1 ErrorEvent {isTrusted: true, message: “Uncaught TypeError: Cannot read properties of null (reading ‘off’)”, filename: ‘http://localhost:7456/scripting/engine/bin/.cache/dev/preview/bundled/index.js’, lineno: 52409, colno: 32, …}
    (匿名) @ index.js:1
    node.ts:1124 Uncaught TypeError: Cannot read properties of null (reading ‘off’)
    at Node.off (node.ts:1124:30)
    at ScrollView.onDisable (scroll-view.ts:1007:31)
    at ComponentScheduler.disableComp (component-scheduler.ts:438:22)
    at NodeActivator.destroyComp (node-activator.ts:255:42)
    at ScrollView._onPreDestroy (component.ts:387:42)
    at ScrollView._destroyImmediate (object.ts:382:18)
    at Node._onPreDestroyBase (node.ts:1378:22)
    at Node._onPreDestroy (node.ts:1498:21)
    at Node._destroyImmediate (object.ts:382:18)
    at Node._onPreDestroyBase (node.ts:1370:25)

ErrorEvent {isTrusted: true, message: “Uncaught TypeError: Cannot read properties of null (reading ‘0’)”, filename: ‘http://localhost:7456/scripting/engine/bin/.cache/dev/preview/bundled/index.js’, lineno: 25727, colno: 36, …}
(匿名) @ index.js:1
renderer.ts:183 Uncaught TypeError: Cannot read properties of null (reading ‘0’)
at Label.getMaterialInstance (renderer.ts:183:21)
at Label.get (renderer.ts:97:21)
at Label._flushAssembler (label.ts:827:50)
at Label.updateRenderData (label.ts:764:18)
at LabelOutline._updateRenderData (label-outline.ts:125:19)
at LabelOutline.onDisable (label-outline.ts:119:14)
at ComponentScheduler.disableComp (component-scheduler.ts:438:22)
at NodeActivator.destroyComp (node-activator.ts:255:42)
at LabelOutline._onPreDestroy (component.ts:387:42)
at LabelOutline._destroyImmediate (object.ts:382:18)

  • 之前哪个版本是正常的:
  • 手机型号:
  • 手机浏览器:
  • 编辑器操作系统:
  • 重现概率: 100%

node中的_onPreDestroyBase函数先释放了所有子节点,再释放组件
结果scrollview组件中onDisable会用到子节点,就报错了

后续还有很多类似的报错
为什么不能先释放组件,再释放子节点

mak一下,看下有大佬么