在 canvas 在延迟执行的缩放过程中被拆离时,无法在 getComputedStyle 中读取 null 的属性(读取 'ownerDocument')
□ 说明
GetStyle'/GetComputedStyle' in ' helpers.dom.ts'(称为Get MaximSize'-DomPlatform.get MaximumSize')假定传递给它的画布元素永远不是null'。 当一张图表的画布已经从DOM中取出,但大小()'/`更新()'之后仍会起火时,这样一来:
类型错误: 无法读取无效的属性( 读取“ 所有人文件 ”)
堆叠( 从源头解析的最小名称) :
得到ComputedStyle (帮助. dom.ts)
+ 获得MaximumSize(帮助.dom.ts)
• DomPlatform.get MaximumSize(平台.dom.js) 互联网档案馆的存檔,存档日期2013-12-21.
• 缩放图。
• 图. 已删除
• 约束反应活动
· 约束事件
检查事件( V)
——图.更新
+ this. do reize (已取消的回调大小)
□ 复制路径
我们在React app中(通过react-chartjs-2')使用remission Delay'(已取消的重制尺寸)来打击它。 顺序 :
- 图表挂载; 构造者调整路径的大小, 因为“ 更改大小 Delay > 0 ” 。
- 在解除定时器起火之前,组件卸载和回放会将帆布从DOM( " destroy () " 运行中移除,但等待的定时器并不总是保证会根据框架/容器拆卸命令而失去比赛。
- 无论如何, " 更新() " 和 " 恢复 " 、 " 取消() " 、 " 取消() " 、 " 取消(())回应 " 、 " 平台 " 、 " Get MaximumSize(canvas,.) " 、 " GetComputed Style(canvas) " 和 " Canvas " 的 " null " / " 取消 " 。
□ 以前的艺术
这同第11809号故障(https://GitHub.com/chartjs/Chart.js/pull/11809)固定,对照图4.4.3报告。 PR没有合并就关闭了——不是因为这个方法被彻底拒绝(一个维护者只评论了"返回半违约值"的方法感到有点黑客化,并问回放是否可以被缩小到"容器拆卸案"),而是因为作者的团队在讨论结束前离开Chart.js. 潜伏的虫子从未修复过
我们独立地转载了与最新发布内容完全相同的堆栈跟踪和错误信息,图.js 4.5.1,证实它仍然存在。
∮我们的工作∮
我们完全取消了自己对‘调整大小'的用法, 因为取消更改大小是造成"取消组件"和"取消的调整仍然悬而未决"之间的竞争。 这避免了我们的崩溃, 但背后的无效检查漏洞 在Getcomputing Style " / " Get MaximumSize " (以及被#11809所触动的相关斑点:GetRelative Postition',GetContainerSize')对于通过不同途径(例如响应:真实'而不调整规模 ' ,加上在飞行中恢复观察员'召回时快速卸载)进行类似倒闭比赛的其他人来说,仍然保留着。
□ 建议修正
重开/重开 #11809 的方法: 守护 “ GetComputingStyle ” / “ Get MaximSize ” / “ GetContanerSize ” / “ GetRelativePostition ” , 以对抗缺失的画布(可选的链式+ 合理默认) , 因为 PR diff 已经执行 。
□ 环境
- 图.js:4.5.1
- 浏览器:已复制 . . . . . . .
内容来源: chartjs/Chart.js