【发布时间】:2020-03-06 09:25:29
【问题描述】:
上下文
我们正在开发一个基于 React 的应用程序,它被用作其他网站上的“小部件”。我们的整个 React 应用程序使用 react-frame-component 包装在 iframe 中。
出于开发目的,我们使用Sentry 记录任何错误 (@sentry/browser sdk)。
问题
我们注意到,一旦我们的应用程序被集成到任何网站上,错误就不会再被记录到 Sentry,我们不完全确定如何解决这个问题。
因此,我们正在寻求一种解决方案,以将 iframe 内发生且仅在该 iframe 内发生的错误记录到 Sentry。
是否有可能以某种方式告诉 Sentry 使用哪个窗口/目标/范围?
使用React Error Boundaries 可能是一个值得考虑的选项。但是,它不会捕获所有错误。
iframe - 代码
...
render(
<Iframe initialContent={initialIframeContent}>
<App />
</Iframe>,
document.getElementById(containerId)
);
...
Sentry 集成 - 代码
...
Sentry.init({
environment: env,
dsn: SENTRY_DSN
});
...
【问题讨论】:
-
你有什么运气吗?我有一个非常相似的情况
-
@NicholasHaley 抱歉回复晚了。我刚刚添加了我们的解决方案作为答案