# @featbit/react-native-sdk 中文文档

规范地址：https://npmcn.com/package/%40featbit/react-native-sdk/

版本：4\.4\.2
npm 元数据更新时间：2026-11-04T09:36:03.285Z
中文译文更新时间：2026-11-14T12:49:41.221Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40featbit/react-native-sdk
原文对照：https://npmcn.com/package/%40featbit/react-native-sdk/?lang=original
项目主页：https://www.featbit.co/
源码仓库：https://github.com/featbit/featbit-react-native-sdk

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

- 包体积（解压后）：65.9 kB，46 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- 运行依赖：2 个
- peer 依赖：react \*，react-native \*
- 首次发布：2024-05-20T07:51:34.762Z
- 最新版本发布：2026-11-04T09:36:03.142Z
- 近 30 天下载量：8951（2026-10-15 至 2026-11-13，npm 官方下载统计）
- 已发布版本数：27（近 12 个月 17 个）

## 中文简介

FeatBit 客户端 SDK 反应原生

## 安装

```sh
npm install @featbit/react-native-sdk
```

也可以使用：`pnpm add @featbit/react-native-sdk`、`yarn add @featbit/react-native-sdk`、`bun add @featbit/react-native-sdk`

## README

# FeatBit 客户端- Side SDK 用于反应原生

## 导言

这是特性管理平台的回放原生 SDK [费特比特](https://www.featbit.co/)。 。 。 .

要注意,这是客户端SDK,它打算用于单用户上下文,可以是移动,桌面或嵌入式应用程序. 这个SDK被设计用于React Industrial项目.

> React 本地 SDK 是基于 React 客户端 SDK  
> React Introduct SDK基于FeatBit的React客户端SDK(后者依赖于JavaScript客户端SDK)提供更好的集成,用于React Introduct应用. 因此,许多React客户端SDK和JavaScript SDK功能也可供React Natural SDK使用.

## 开始

### 安装

```
npm install @featbit/react-native-sdk
```

### 先决条件

在使用SDK之前,需要获得环境秘密和SDK URL.

遵循以下文档获取这些值

-   [如何让环境秘密](https://docs.featbit.co/sdk/faq#how-to-get-the-environment-secret)
-   [如何获得 SDK URL](https://docs.featbit.co/sdk/faq#how-to-get-the-sdk-urls)

### 快速启动

以下代码显示:

1.  初始化 SDK
2.  用用户 Flags 钩子评估旗帜

```javascript
// src/TestComponent.tsx
import React from 'react';
import {Text, View} from 'react-native';
import {Colors} from 'react-native/Libraries/NewAppScreen';
import {useFlags} from '@featbit/react-client-sdk';

export default function TestCompoment({isDarkMode}: {isDarkMode: boolean}) {
    const {robot} = useFlags();
    return (
        <View
            style={[
                {
                    marginTop: 32,
                    paddingHorizontal: 24,
                },
            ]}>
            {robot === 'AlphaGo' && (
                <Text
                    style={[
                        {
                            color: isDarkMode ? Colors.white : Colors.black,
                            textAlign: 'center',
                            fontSize: 30,
                            fontWeight: '700',
                        },
                    ]}>
                    AlphaGo 🤖
                </Text>
            )}
        </View>
    );
}

// App.tsx
import React from 'react';
import {
    SafeAreaView,
    useColorScheme
} from 'react-native';
import type { PropsWithChildren } from 'react';
import {buildConfig, withFbProvider} from '@featbit/react-native-sdk';
import TestCompoment from './src/TestComponent.tsx';

function App(): React.JSX.Element {
    const isDarkMode = useColorScheme() === 'dark';

    const backgroundStyle = {
        backgroundColor: isDarkMode ? Colors.darker : Colors.lighter,
    };

    return (
        <SafeAreaView style={backgroundStyle}>
            <TestCompoment isDarkMode={isDarkMode} />
        </SafeAreaView>
    )
}

const options = {
    user: {
        name: 'the user name',
        keyId: 'fb-demo-user-key',
        customizedProperties: []
    },
    sdkKey: 'YOUR ENVIRONMENT SECRET',
    streamingUri: 'THE STREAMING URL',
    eventsUrl: 'THE EVENTS URL'
};

export default withFbProvider(buildConfig({options}))(App);
```

## 实例

-   [反应原生APP](https://npmcn.com/package/%40featbit/react-native-sdk/examples/ReactNativeApp)
-   [发布APP](https://npmcn.com/package/%40featbit/react-native-sdk/examples/ExpoApp)

## SDK 软件

React 本地 SDK 依赖于 React 客户端 SDK, 请参考 [反应客户端 SDK](https://github.com/featbit/featbit-react-client-sdk) 更多信息. 反应客户端SDK与反应原生SDK的主要区别在于SDK的初始化方式.

### 初始化 SDK

安装依赖后,初始化反应SDK. 你可以通过两种方式之一做到这一点:

-   使用 `asyncWithFbProvider` 函数
-   使用 `withFbProvider` 函数

在使用上述两种方法之前,需要创建 `IOption` 对象,请确定您已呼叫 `buildConfig` 函数与 `IOption` 对象作为参数.

```javascript
function App(): React.JSX.Element {
    // The App component code ...
}

const options = {
    user: {
        name: 'the user name',
        keyId: 'fb-demo-user-key',
        customizedProperties: []
    },
    sdkKey: 'YOUR ENVIRONMENT SECRET',
    streamingUri: 'THE STREAMING URL',
    eventsUrl: 'THE EVENTS URL'
};

// This line is needed to initialize the SDK
const config = buildConfig({options});

export default withFbProvider(config)(App);

```

### 生命周期认识流

使用流线时( W)`dataSyncMode: 'streaming'`),SDK是生命周期意识出盒子. A 类 WebSocket无法从iOS背景悬浮或Android doze中幸存,而OS可能永远无法交付一个 干净 `close`,所以一个天真客户端 不停地拨打一个死套接字 并重新盲目连接在简历。 改为: 避免此操作, SDK 会在应用程序背景化或下线后不久即放弃连接 当连接返回时,在前景上重新建立它——立即进行再同步.

这是由React Industrial的驱动 `AppState` 自动启用; 没有任何线 起来 短暂中断( iOS 应用程序切换器、 瞬间网络 blips) 被解禁, 以免被解禁 切断连接 如果应用程序从来就没有背景,也从未报告网络的变化,那么行为就是 和一直连接的一样.

网络丢失检测是可选的. 如果您也安装 [`@react-native-community/netinfo`](https://github.com/react-native-netinfo/react-native-netinfo), (中文(简体) ), 该流额外暂停网络丢失, 恢复重新连接; 没有它, `AppState` 单靠自己就能推动行为.

```
npm install @react-native-community/netinfo
```

## 常见问题

### @featbit/react-native-sdk 是什么？

FeatBit 客户端 SDK 反应原生

### 如何安装 @featbit/react-native-sdk？

在项目目录运行 npm install @featbit/react-native-sdk，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：react（\*）、react-native（\*）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @featbit/react-native-sdk 支持 TypeScript 吗？

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

### @featbit/react-native-sdk 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @featbit/react-native-sdk 可以商用吗？

@featbit/react-native-sdk 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @featbit/react-native-sdk 的下载量有多少？

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

### @featbit/react-native-sdk 还在维护吗？

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

