Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

使用grid 后,echarts 宽度计算问题 #150

Closed
NearTheSeas opened this issue Feb 25, 2018 · 18 comments
Closed

使用grid 后,echarts 宽度计算问题 #150

NearTheSeas opened this issue Feb 25, 2018 · 18 comments

Comments

@NearTheSeas
Copy link

使用了antdesign的grid,首次进入界面的时候,echart图表的宽度总是超出界面,切换下路由,或者拖动窗口大小重新计算就回复正常,请问有什么好的方式解决?
个人感觉像是页面布局还没有渲染完成,echarts就已经计算完宽度了

@NearTheSeas
Copy link
Author

看到有说这个方法 this.echartsReact.getEchartsInstance().resize();
但是我调用后报错,
image

@hustcc
Copy link
Owner

hustcc commented Feb 25, 2018

我们年前在线上也遇到这个问题,下周着力寻找原因和解决方案,再详细回复你…

@Viin-zx
Copy link

Viin-zx commented Feb 26, 2018

感觉跟我遇到的那个高度计算的问题有点像。也是重新计算大小才会正常。

@hustcc
Copy link
Owner

hustcc commented Feb 26, 2018

@Viin-zx 应该是同一个问题,都是容器渲染顺序的问题,然后容器大小修改之后,没有自动调用 resize。

理论上使用:this.echartsReact.getEchartsInstance().resize(); 是可以解决的!

@NearTheSeas
Copy link
Author

我之前考虑一种解决方式就是给ReactEcharts 加个固定宽度,然后定位居中,但是不治本,也不好看;
resize 报错这个我再研究下

@hustcc
Copy link
Owner

hustcc commented Feb 26, 2018

resize 报错的错误发出来看看!

@Viin-zx
Copy link

Viin-zx commented Feb 26, 2018

@hustcc 我试着在componentDidMount中resize了也没有用。。。

@hustcc
Copy link
Owner

hustcc commented Feb 26, 2018

setTimeout 延迟 resize 试试,渲染顺序问题。

@Viin-zx
Copy link

Viin-zx commented Feb 26, 2018

@hustcc 可以了,谢谢。

@hustcc
Copy link
Owner

hustcc commented Feb 26, 2018

@NearTheSeas 我在本地,使用 antd 的 grid 也无法复现这个问题。包括我们线上也无法复现,所以很难去修复。

你能在 codepen 上写一个示例复现这个问题吗?

@NearTheSeas
Copy link
Author

最近在赶项目,得等上完线之后了;我找到另一种解决方式就是,图表数据是异步获取的,默认没有数据的时候,整个ReactEcharts元素不渲染

hustcc added a commit that referenced this issue Mar 1, 2018
@hustcc
Copy link
Owner

hustcc commented Mar 1, 2018

@Viin-zx 帮忙测试下 v2.0.7 是否解决这个问题(不使用 setTimeout resize 的方法)

@NearTheSeas 有空也帮忙试试 v2.0.7 版本是否解决这个问题!

@Viin-zx
Copy link

Viin-zx commented Mar 2, 2018

@hustcc hello, 刚测试了下,2.0.7 还是没有解决那问题

@hustcc
Copy link
Owner

hustcc commented Mar 2, 2018

😢
@Viin-zx 我这边不能复现,忙改还是不好改,你那边有时间,帮忙提个 pr 呗?

@Viin-zx
Copy link

Viin-zx commented Mar 5, 2018

@hustcc sorry,我不太懂您啥意思,是帮忙修改bug吗? 能不能教教我。( Ĭ ^ Ĭ )

@hustcc
Copy link
Owner

hustcc commented Mar 5, 2018

因为你本地可以复现这个问题,可以帮忙修复一下这个问题,然后把代码提交上来。

我这边无法稳定复现问题,很难修复这个问题。

@Viin-zx
Copy link

Viin-zx commented Mar 5, 2018

@hustcc 了解了,不好意思第一次弄。。我提交了一个改动,我的问题不会出现了,但不确定这样做是不是最好的。

@hustcc
Copy link
Owner

hustcc commented Mar 14, 2018

@Viin-zx 我在本地复现这个问题,确认下你那边出现这个问题的场景是在异步加载的情况吗?

我们这边是因为异步加载,然后 in-view 判断的时候出现错误,导致 echart 渲染的容器宽高为 0,然后 echarts 渲染的时候自动设置为100px。

@hustcc hustcc closed this as completed Mar 19, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants