React加载样式导致echarts宽度计算错误?

  1. 有如下react组件:
import "./Home.scss";

class Home extends React.Component{
    render(){
        return (
            <div className="box clearfix">
                <div className="left">
                    <Echart style={{width: '100%', height: 300}} .../>
                </div>
                <div className="right">
                    <Echart style={{width: '100%', height: 300}} .../>
                </div>
            </div>
        );
    }
}

.left.right各占50%,但是渲染时Echarts的宽度确是100%,如果我把样式写在行内,就不会有问题

//Home.scss
.box{
    .left, .right{
        width: '50%';
        float: left;
    }
}

所以感觉应该是渲染Echarts时样式并未加载进来,所以刚开始left和right宽度都是100%,这个改怎么解决?

阅读 3.2k
1 个回答

我的解决办法使用setTimeout(()=>{代码});

部分代码如下

setTimeout(() => {
      let ele = document.getElementById(`chart-line-container${type}`);
      let myChart = echarts.init(ele);
      myChart.showLoading({
        text: '正在努力的读取数据中...',    //loading
      });
      。。。
}, 0);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题