React Native Navigation

了解如何使用 Sentry 的 React Native Navigation instrumentation。

Sentry 的 React Native SDK 包含了对 React Native Navigation 的 instrumentation。这使您可以查看导航转换的性能以及在导航过程中发生的错误。本页面将指导您完成 instrumentation 的设置并根据需要进行配置。

您需要将从库中导入的 Navigation 对象传递给我们的路由 instrumentation 进行初始化。建议您在应用程序生命周期的早期阶段初始化我们的 SDK 和路由 instrumentation;这通常是在初始化屏幕之前进行。

index.js
Copied
import * as Sentry from "@sentry/react-native";
import { Navigation } from "react-native-navigation";

Sentry.init({
  dsn: "https://examplePublicKey@o0.ingest.sentry.io/0",
  integrations: [
    Sentry.reactNativeNavigationIntegration({
      navigation: Navigation,
    }),
  ],
});

您可以通过向构造函数传递一个选项对象来配置 instrumentation:

Copied
Sentry.reactNativeNavigationIntegration({
  navigation: Navigation, // Navigation from `react-native-navigation`
  routeChangeTimeoutMs: 1_000, // default: 1_000
  enableTabsInstrumentation: true, // default: false
  ignoreEmptyBackNavigationTransactions: true, // default: true
});

此选项是必需的,并且应为从导航库导入的 Navigation 对象。

此选项指定在路由更改发起后,instrumentation 等待路由挂载的时间。如果在此时间内路由未挂载,事务将被丢弃。默认值是 1_000 毫秒。

此 instrumentation 将在标签页更改时创建一个事务。默认情况下,只有导航命令会创建事务。默认值是 false

此选项确保来自已见过且没有任何跨度的路由的事务不会被采样。这减少了大量杂乱数据,使得大多数返回导航事务现在被忽略。默认值是 true