apache / echarts

Apache ECharts is a powerful, interactive charting and data visualization library for browser
https://echarts.apache.org
Apache License 2.0
60.12k stars 19.6k forks source link

An error is thrown in the Scheduler #11395

Closed pissang closed 3 years ago

pissang commented 4 years ago

Version

4.3.0

Steps to reproduce

Full test code:


<html>
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1" />
        <script src="lib/esl.js"></script>
        <script src="lib/config.js"></script>
        <script src="lib/jquery.min.js"></script>
        <script src="lib/facePrint.js"></script>
        <script src="lib/testHelper.js"></script>
        <link rel="stylesheet" href="lib/reset.css" />
    </head>
    <body>
        <style>
        </style>

        <div id="main0"></div>

        <script>
        require(['echarts'/*, 'map/js/china' */], function (echarts) {
            var option;

            option = {
                legend: [{
                    data: ['dataset 1', 'dataset 2'],
                    selected: {
                        'dataset 2': false,
                        'dataset 1': true
                    }
                }],
                xAxis: {
                    data: ['Beijing', 'Guangzhou', 'Shenzhen']
                },
                yAxis: {},
                series: [{
                    name: 'dataset 1',
                    type: 'bar',
                    data: [10, 20, 15]
                }, {
                    name: 'dataset 2',
                    type: 'bar',
                    data: [10, 20, 15]
                }]
            };

            var chart = testHelper.create(echarts, 'main0', {
                title: [
                    'Delay setOption',
                    'It should not throw error when doing following steps',
                    '(1) setOption with legend unselected in option',
                    '(2) setOption with delay',
                    '(3) resize()'
                ],
                option: option
            });

            chart.setOption({}, false, true);
            chart.resize();
        });
        </script>

    </body>
</html>

What is expected?

Chart is displayed properly

What is actually happening?

Throw an error

MacHi 2019-10-14 19-58-13
easonyq commented 4 years ago

As a workaround, the following change works! (Thanks to @pissang )

- chart.setOption({}, false, true);
+ chart.setOption({}, false, false);
echarts-bot[bot] commented 3 years ago

This issue is labeled with priority: high, which means it's a frequently asked problem and we will fix it ASAP.