# @equinor/fusion-framework-react-module-context 中文文档

规范地址：https://npmcn.com/package/%40equinor/fusion-framework-react-module-context/

版本：7\.0\.7
npm 元数据更新时间：2026-11-12T09:57:30.219Z
中文译文更新时间：2026-11-13T21:01:19.961Z
软件包许可：ISC

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

原始 npm 页面：https://www.npmjs.com/package/%40equinor/fusion-framework-react-module-context
原文对照：https://npmcn.com/package/%40equinor/fusion-framework-react-module-context/?lang=original
源码仓库：https://github.com/equinor/fusion-framework

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

- 包体积（解压后）：356 kB，22 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：4 个
- peer 依赖：react ^18\.0\.0 \|\| ^19\.0\.0，react-dom ^18\.0\.0 \|\| ^19\.0\.0，@types/react ^18\.0\.0 \|\| ^19\.0\.0
- 首次发布：2022-11-02T14:32:42.527Z
- 最新版本发布：2026-11-12T09:57:29.855Z
- 近 30 天下载量：4248（2026-10-14 至 2026-11-12，npm 官方下载统计）
- 已发布版本数：194（近 12 个月 17 个）

## 中文简介

暂无中文简介

## 安装

```sh
npm install @equinor/fusion-framework-react-module-context
```

也可以使用：`pnpm add @equinor/fusion-framework-react-module-context`、`yarn add @equinor/fusion-framework-react-module-context`、`bun add @equinor/fusion-framework-react-module-context`

## README

# @ equinor/ 组合- 框架- 反应- 模块- context

Fusion上下文模块的反应钩. 提供钩子来读取当前上下文,设置上下文,并查询来自React组件的现有上下文.

**导入 :**

```ts
import { useCurrentContext, useQueryContext, enableContext } from '@equinor/fusion-framework-react-module-context';
```

## 出口

| 导出 | 类型 | 说明 |
| --- | --- | --- |
| `useCurrentContext` | 钩子 | 读取并设置当前上下文( 需要提供方参数) |
| `useModuleCurrentContext` | 钩子 | 从最近的模块范围读取和设置当前上下文 |
| `useQueryContext` | 钩子 | 搜索可用的上下文并解禁( 需要提供商) |
| `useModuleQueryContext` | 钩子 | 从最近的模块范围搜索可用的上下文 |
| `enableContext` | 函数 | 在配置符中启用上下文模块 |
| `ContextModule` | 类型 | 背景模块类型定义 |
| `ContextItem` | 类型 | 单一上下文条目(项目、设施等) |
| `ContextItemType` | 类型 | 上下文项目类型 |
| `IContextProvider` | 类型 | 上下文提供者接口 |
| `IContextModuleConfigurator` | 类型 | 启用上下文模块的配置界面 |
| `FusionContextSearchError` | 错误 | 上下文搜索失败时出错 |

## 此软件包对 `react-app/context`

| 假设 | 从 |
| --- | --- |
| 构建融合应用( 最常见的) | `@equinor/fusion-framework-react-app/context` |
| 建立可重复使用的库或模块 | `@equinor/fusion-framework-react-module-context` |
| 建立门户或主机应用程序 | `@equinor/fusion-framework-react-module-context` |

这个 `react-app/context` 子路径用应用扫描的方便来包裹这些钩子. 当构建框架级代码或共享库需要明确提供者注入时直接使用此软件包.

## 使用当前文本/ 使用模块当前文本

返回当前选定的上下文和一个设置函数.

```tsx
import { useModuleCurrentContext } from '@equinor/fusion-framework-react-module-context';

const ContextInfo = () => {
  const { currentContext, setCurrentContext } = useModuleCurrentContext();

  if (!currentContext) return <p>No context selected</p>;

  return (
    <div>
      <p>{currentContext.title}</p>
      <button onClick={() => setCurrentContext(null)}>Clear</button>
    </div>
  );
};
```

## 使用查询链接/ 使用模块查询链接

搜索内置调试的可用上下文( 默认500ms) .

```tsx
import { useModuleQueryContext } from '@equinor/fusion-framework-react-module-context';

const ContextSearch = () => {
  const { value: results, querying, query } = useModuleQueryContext();

  return (
    <div>
      <input onChange={(e) => query(e.target.value)} placeholder="Search contexts…" />
      {querying && <span>Searching…</span>}
      <ul>{results?.map((ctx) => <li key={ctx.id}>{ctx.title}</li>)}</ul>
    </div>
  );
};
```

## 相关

-   [`@equinor/fusion-framework-module-context`](https://npmcn.com/package/modules/context/README.md) ——基本上下文模块
-   [`@equinor/fusion-framework-react-app/context`](https://npmcn.com/package/app/README.md#context) 应用开发软件包装

## 常见问题

### 如何安装 @equinor/fusion-framework-react-module-context？

在项目目录运行 npm install @equinor/fusion-framework-react-module-context，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：react（^18\.0\.0 \|\| ^19\.0\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @equinor/fusion-framework-react-module-context 支持 TypeScript 吗？

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

### @equinor/fusion-framework-react-module-context 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @equinor/fusion-framework-react-module-context 可以商用吗？

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

### @equinor/fusion-framework-react-module-context 的下载量有多少？

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

### @equinor/fusion-framework-react-module-context 还在维护吗？

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

