# @datadog/mobile-react-navigation 中文文档

规范地址：https://npmcn.com/package/%40datadog/mobile-react-navigation/

版本：3\.11\.0
npm 元数据更新时间：2026-10-20T14:52:02.226Z
中文译文更新时间：2026-11-11T13:24:59.032Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40datadog/mobile-react-navigation
原文对照：https://npmcn.com/package/%40datadog/mobile-react-navigation/?lang=original
项目主页：https://github.com/DataDog/dd-sdk-reactnative#readme
源码仓库：https://github.com/DataDog/dd-sdk-reactnative

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：432 kB，311 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：0 个
- peer 依赖：react \>=16\.13\.1，react-native \>=0\.63\.4 \<1\.0，@datadog/mobile-react-native ^3\.0\.0
- 首次发布：2021-07-26T12:14:56.406Z
- 最新版本发布：2026-10-20T14:52:01.330Z
- 近 30 天下载量：1153378（2026-10-12 至 2026-11-10，npm 官方下载统计）
- 已发布版本数：118（近 12 个月 32 个）

## 中文简介

与 Datadog 交互的客户端反应本地模块

## 安装

```sh
npm install @datadog/mobile-react-navigation
```

也可以使用：`pnpm add @datadog/mobile-react-navigation`、`yarn add @datadog/mobile-react-navigation`、`bun add @datadog/mobile-react-navigation`

## README

# 反应-国内监测 `react-navigation` 组件

数据犬 _真正的用户监测( RUM)_ 您可以直观分析您的应用程序的个人用户的实时性能和用户行程。 此特定一揽子方案增加了对 [`react-navigation`](https://github.com/react-navigation/react-navigation) 图书馆.

## 设置

**说明**: 此软件包是用于 [`react-navigation`](https://github.com/react-navigation/react-navigation) 库中,请确保您首先安装和设置核心 [`mobile-react-native`](https://github.com/DataDog/dd-sdk-reactnative/tree/main/packages/core) SDK(英语:SDK).

要安装国家预防机制,运行:

```sh
npm install @datadog/mobile-react-navigation
```

要安装 Yarn, 请运行 :

```sh
yarn add @datadog/mobile-react-navigation
```

### 轨道视图导航

要按照 RUM 视图跟踪导航的变化,请设定 `onReady` 调用您的 `NavigationContainer` 构成部分如下。 您可以使用可选 `NavigationTrackingOptions` 参数来替换跟踪器在视图、其名称和导航参数方面的默认行为.

```js
import * as React from 'react';
import { DdRumReactNavigationTracking, ParamsTrackingPredicate, ViewNamePredicate, ViewTrackingPredicate } from '@datadog/mobile-react-navigation';
import { Route } from "@react-navigation/native";

// Sets a custom name for a tracked view
const viewNamePredicate: ViewNamePredicate = function customViewNamePredicate(route: Route<string, any | undefined>, trackedName: string) {
  return "My custom View Name"
}

// Decides if a view should be tracked or not
const viewTrackingPredicate: ViewTrackingPredicate = function customViewTrackingPredicate(route: Route<string, any | undefined>) { 
  if (route.name === "AlertModal") {
    return false;
  }

  return true;
}

// Allows to define what navigation parameters should be tracked for a specific view
const paramsTrackingPredicate: ParamsTrackingPredicate = function customParamsTrackingPredicate(route: Route<string, any | undefined>) { 
  const filteredParams: any = {};
  if (route.params?.creditCardNumber) {
    filteredParams["creditCardNumber"] = "XXXX XXXX XXXX XXXX";
  }

  if (route.params?.username) {
    filteredParams["username"] = route.params.username;
  }

  return filteredParams;
}

const navigationTrackingOptions: NavigationTrackingOptions = {
  viewNamePredicate,
  viewTrackingPredicate,
  paramsTrackingPredicate,
}

function App() {
  const navigationRef = React.useRef(null);
  return (
    <View>
      <NavigationContainer ref={navigationRef} onReady={() => {
        DdRumReactNavigationTracking.startTrackingViews(navigationRef.current, navigationTrackingOptions)
      }}>
        // …
      </NavigationContainer>
    </View>
  );
}
```

这些上游是可选的,当不设置默认行为时,将被用于其中每一个. 默认行为如下:

-   视图Name Predicate - 将给定的视图名称直接转发给 RUM .
-   查看跟踪 Predicate - 跟踪 RUM 上的所有视图.
-   参数跟踪 Predicate - 不向 RUM 转发任何参数 .

**说明**: 只有一个 `NavigationContainer` 可以追踪到当时。 如果您需要跟踪另一个容器, 请先停止跟踪前一容器, 使用 `DdRumReactNavigationTracking.stopTrackingViews()`。 。 。 .

## 常见问题

### @datadog/mobile-react-navigation 是什么？

与 Datadog 交互的客户端反应本地模块

### 如何安装 @datadog/mobile-react-navigation？

在项目目录运行 npm install @datadog/mobile-react-navigation，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：react（\>=16\.13\.1）、react-native（\>=0\.63\.4 \<1\.0）、@datadog/mobile-react-native（^3\.0\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @datadog/mobile-react-navigation 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @datadog/mobile-react-navigation 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @datadog/mobile-react-navigation 可以商用吗？

@datadog/mobile-react-navigation 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @datadog/mobile-react-navigation 的下载量有多少？

根据 npm 官方下载统计，@datadog/mobile-react-navigation 在 2026/10/12 – 2026/11/10 这 30 天内被下载 1,153,378 次，日均约 38,446 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @datadog/mobile-react-navigation 还在维护吗？

最新版本 3\.11\.0 发布于 2026/10/20（21 天前）；至今共发布 118 个版本，其中过去 12 个月发布了 32 个；首次发布于 2021/07/26。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

