【问题标题】:Highchart error make the whole page breakdownHighchart错误使整个页面崩溃
【发布时间】:2019-08-16 06:08:22
【问题描述】:

后端返回的config中的series数据类型错误显示为highcharts error #14。

如果出现类似的highcharts错误代码,则整个页面为空白。

如何监控Highcharts React中的错误并在div中显示错误消息而不是导致整个页面崩溃

constructor(props) {
    super(props);
    this.state = {
        config: {
            title: {
                text: 'test'
            },
            series: [{"type":"column",
                "data":[{"date":1546790400000,"y":'323'},
                {"date":1546790400000,"y":'756'},
                {"date":1546790400000,"y":'646'}]
            }]
        }
    };
}
render() {
    return (
        <div>
            <HighchartsReact highcharts={Highcharts}
                options={this.state.config} />;
        </div>
    );
}
I expect:
render() {
    return (
        <div>
        uncaught at _callee Error: Highcharts error #14
        </div>
    );
}

但不是整个页面崩溃

【问题讨论】:

  • 嗨,如果您阅读了highcharts error 14 page here,您将很快解决问题,只需将"y":'323' 更改为"y":323

标签: reactjs highcharts


【解决方案1】:

您的 javascript 代码中的任何错误都将导致用于生产的空白页面和开发中的堆栈跟踪。

如果您知道某个组件可能会引发错误,或者您只是想防止可能出现的错误,您应该使用error boundaries

您只需将整个应用程序或仅将某些组件包装在错误边界中(每个应用程序可能有多个边界)。如果发生错误,错误将向上传递到组件树,直到达到边界。通过保存状态和有条件的回退错误页面来对错误做出反应,您可以为整个应用程序或仅显示子组件的回退页面来处理错误。

对于您的项目,我建议至少使用 2 个边界:1 用于您的应用程序中围绕主要组件的任何错误。另一个应该直接包装 HighChartComponent 以仅显示该图表的后备,例如:该图表失败。请重新加载。

这样做,错误不会破坏整个应用程序,而只会破坏一部分,可以处理。

【讨论】:

  • 感谢您的指导。我想我已经知道该怎么做了
猜你喜欢
  • 2020-01-17
  • 2021-10-09
  • 2013-10-10
  • 1970-01-01
  • 1970-01-01
  • 2020-03-22
  • 2020-06-25
  • 2013-06-06
  • 2019-02-19
相关资源
最近更新 更多