找回密码
 立即注册

QQ登录

只需一步,快速开始

Anne01

注册会员

6

主题

8

帖子

40

积分

注册会员

积分
40
  • 114

    金币

  • 6

    主题

  • 8

    帖子

Anne01
注册会员   /  发表于:2022-8-17 10:08  /   查看:1646  /  回复:1
需要实现的功能是:在浮动对象上渲染了Echart 图表,当拖拽 浮动对象(浮动对象的大小尺寸发生变化)时,刷新浮动对象floatObject中的内容,内容是Echart 图表,去更新图表的内容(包括Echart 图表的大小)。用了 refreshContent()方法,自己重写了这个方法,在方法中,获取浮动对象的宽高给到 Echart ,去执行Echart 的refreshCharts。调用refreshContent 方法的代码如下:
  1.   customFloatingObject.refreshContent = () => {
  2.     console.log('refresh floating', customFloatingObject)
  3.     const width = customFloatingObject.width()
  4.     const height = customFloatingObject.height()
  5.     let div = document.createElement('div')
  6.     div.style.background = '#FFFFFF'
  7.     let innerDiv = document.createElement('div')
  8.     innerDiv.id = chart.id
  9.     innerDiv.style.width = width + 'px'
  10.     innerDiv.style.height = height + 'px'
  11.     console.log(innerDiv)
  12.     console.log(width, height)
  13.     refreshCharts(chart.id, getChartDataFromTables(charts[key].source))
  14.     console.log(customFloatingObject.content(div))
  15.   }
复制代码
执行了这段代码,控制台报错:报超出最大调用栈,错误截图如下
Image.png960844726.png

项目代码在附件,具体的调用位置在437行:表明了出错的位置
image.png334692687.png

index.rar

4.66 KB, 下载次数: 32

1 个回复

倒序浏览
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-8-17 16:37:35
沙发
您好,
从您提供的demo来看,两个文件似乎没有直接的关系,这边无法通过运行来复现您描述的问题。
为了更快的解决问题,以及避免其他可能性因素的影响,建议您整理代码,提供一个可直接运行复现的demo,并详细描述复现步骤,
这边在代码基础上调试调研下原因。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部