【问题标题】:How to track errors in the react-admin dataProvider如何跟踪 react-admin dataProvider 中的错误
【发布时间】:2024-01-23 04:12:01
【问题描述】:

我已经在我的 react-admin 应用程序中安装了错误跟踪器 Rollbar,它对未捕获的错误非常有效,但是 dataProvider 抛出的错误不会发送到 Rollbar。

我认为 dataProvider 抛出的错误在 react-admin 中的某个地方被捕获,并向用户显示通知,因此它们不再“未被捕获”。有没有一种简单的方法可以将这些错误发送到 Rollbar?

比如我的dataProvider是这样的

const dataProvider = (type, resource, params) => {
    throw new Error('foo')
}

Rollbar 在页面顶部安装了一个脚本标签。见https://docs.rollbar.com/docs/browser-js

【问题讨论】:

    标签: javascript reactjs react-admin bug-tracking rollbar


    【解决方案1】:

    react-admin 正在捕获提供程序错误,因为它正在尝试为其显示适当的面向用户的错误消息。

    我不熟悉 Rollbar,但根据docs,应该可以使用handleUncaughtException() 显式报告错误。所以也许可以尝试这样的事情:

    const dataProvider = (type, resource, params) => {
        try {
            // data provider code
        }
        catch (err) {
            rollbar.handleUncaughtException('data provider error', null, null, null, err);
            throw err; // let react-admin display its error message
        }
    }
    

    这是假设 rollbar 全局可用,当然 - 不确定它是否真的以这种方式工作。

    【讨论】: