Typescript 哨兵:在发送之前被称为多重时间

Typescript 哨兵:在发送之前被称为多重时间,typescript,react-native,redux,sentry,Typescript,React Native,Redux,Sentry,我有一个带有redux的react本机应用程序。我想在Sentry记录错误时获取包含数据的PUT请求。我是Sentry的新手,我在我的App.js中使用了这个: Sentry.init({ dsn: ..., enableInExpoDevelopment: true, debug: true, beforeSend(event) { try { fetchMyData(data) Sentry.withScope(function(scope) { Sentr

我有一个带有redux的react本机应用程序。我想在Sentry记录错误时获取包含数据的PUT请求。我是Sentry的新手,我在我的App.js中使用了这个:

Sentry.init({
  dsn: ...,
  enableInExpoDevelopment: true,
  debug: true,

  beforeSend(event) {
try {
  fetchMyData(data)
  Sentry.withScope(function(scope) {
    Sentry.captureMessage('Error');
  });
  return event;
}
catch (e) { 
  return e;
}
  },
});
它工作正常,请求大部分时间都成功,但beforeSend称为多次发送,在Sentry中,事件循环为:Put request->captureMessage->Put request->captureMessage…等等

当Sentry登录时,是否有其他方法调用该方法?数据仅在调用beforeSend时定义。为什么会有这个循环


谢谢大家!

我想这就是你想要的:

哨兵{ dsn:'http://bla.com/12', 是的, 事前{ 试一试{ //fetchMyDatadata //哨兵用望远镜{ //Sentry.captureMessage“错误”; // }; const client=new Sentry.reactiveclient{dsn:'http://bla.com/12'}; client.captureMessage“test”; 返回事件; } 捕获e{ 返回e; } }, };
您需要创建一个新的客户端来从beforeSend发送这些事件。如果您在beforeSend中调用Sentry.captureMessage,如果您不检查特定事件,您将创建一个无休止的循环。

谢谢,这似乎是我的答案。是否可以将我的fetchMyData与Sentry错误结合起来。因此,每次Sentry记录错误时,该函数都会被调用一次。如果可能,在您的示例中,我在哪里可以调用此函数?非常感谢。当我使用一个新的客户端时,Sentry中的错误日志并没有完整的信息。也许我在错误日志中获取数据的任务中使用了错误的方法。但是我的老方法做了正确的事情:获取我的错误数据并记录我的消息,还有一个集合和附加上下文,这在我的示例中没有显示……对不起,我不完全理解您想要实现的目标。