为了账号安全,请及时绑定邮箱和手机立即绑定

用引入react及echart的方式做了一个页面,页面有多个图表,每一个图表都是一个组件

用引入react及echart的方式做了一个页面,页面有多个图表,每一个图表都是一个组件

PIPIONE 2019-03-27 21:19:19
查看完整描述

5 回答

?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

如果你使用的是未被封装的echarts,只能手动的调整宽高了……echarts默认不支持自适应,至少我看官方没有找到相关资料;
没找过其它版本的图标库,所以,不知道有没有自适应的;

查看完整回答
反对 回复 2019-04-05
?
慕雪6442864

TA贡献1812条经验 获得超5个赞

window.onresize = myChart.resize;


查看完整回答
反对 回复 2019-04-05
?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

多个图表只要避免覆盖掉 window.onresize 方法就行了。


当然多个组件批处理的话,不妨写个高阶组件封装一下。


const ChartWrapper = ChildComponent => class extends Component {

    componentDidMount() {

        if (window) {

            const onresize = window.onresize;

            window.onresize = () => {

                if (onresize) onresize();

                this.child.resize();

            };

        }

    }


    render() {

        return (

            <ChildComponent {...this.props} ref={(child) => { this.child = child; }} />

        );

    }

};


export default ChartWrapper;

然后确保每个子组件内部实现 resize 方法。


class Line extends Component {

    resize = () => {

        // myChart.resize();

    };

}


export default ChartWrapper(Line);

// 

class Bar extends Component {

    resize = () => {

        // myChart.resize();

    };

}


export default ChartWrapper(Bar);


查看完整回答
反对 回复 2019-04-05
  • 5 回答
  • 0 关注
  • 1663 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信