Doramagic 项目包 · 项目说明书

mantine-datatable 项目

Mantine DataTable 是一个基于 Mantine UI 组件库构建的表格组件,用于在 React 应用中展示和操作数据。

项目概览与快速上手

mantine-datatable 是一个基于 Mantine 组件库构建的 React 数据表格组件,专注于为开发者提供开箱即用、功能丰富且高度可定制的 Datagrid/DataTable 体验。项目源码与文档站点共存于同一 GitHub 仓库,根目录下的 README.md 明确说明其设计目标是帮助开发者"构建数据丰富的 React 应用程序"。

章节 相关页面

继续阅读本节完整说明和来源证据。

章节 4.1 分页与页大小选择器

继续阅读本节完整说明和来源证据。

章节 4.2 行展开的受控与延迟加载

继续阅读本节完整说明和来源证据。

一、项目定位与核心目标

mantine-datatable 是一个基于 Mantine 组件库构建的 React 数据表格组件,专注于为开发者提供开箱即用、功能丰富且高度可定制的 Datagrid/DataTable 体验。项目源码与文档站点共存于同一 GitHub 仓库,根目录下的 README.md 明确说明其设计目标是帮助开发者"构建数据丰富的 React 应用程序"。

根据 app/config.ts 中定义的产品元数据,组件涵盖的主要功能域包括:列属性与样式、分页、行选择、排序、上下文菜单、嵌套表、行展开、固定列、列分组、RTL 支持、CSS 主题自定义等,几乎覆盖了企业级数据表格的全部常见需求。

graph LR
  A[DataTable 组件] --> B[列定义 columns]
  A --> C[数据源 records]
  A --> D[分页与排序]
  A --> E[选择与上下文菜单]
  A --> F[行展开 / 嵌套表]
  A --> G[列分组 / 固定列]
  A --> H[主题与样式覆盖]

资料来源:README.md:1-50app/config.ts:1-80

二、依赖关系与安装步骤

mantine-datatable 强依赖 @mantine/core@mantine/hooks 以及 clsx 三个包。文档 app/getting-started/page.tsx 明确指出安装方式应使用以下任意一种主流包管理器:

yarn add mantine-datatable clsx
npm i mantine-datatable clsx
pnpm i mantine-datatable clsx

需要特别注意的是,样式文件的加载顺序至关重要app/getting-started/page.tsx 以"非常重要"的提示强调:必须先应用 @mantine/core 的 CSS,再应用 mantine-datatable 的样式,否则主题色与背景色会出现覆盖异常。这一点也呼应了社区中关于"striped 和 highlightOnHover 样式被覆盖"的反馈(见 Issue #707)。

关于 React 版本,社区曾反馈希望保持与 Mantine 同步(见 Issue #737),目前主分支要求 react >= 19。如果项目仍停留在 React 18,需锁定历史版本或等待后续兼容更新。

资料来源:app/getting-started/page.tsx:1-60

三、最小可运行示例

app/getting-started 页面配套提供了 GettingStartedExample.tsx,演示了最简形式的使用方式。典型代码结构如下:

import { DataTable } from 'mantine-datatable';

const records = [
  { id: 1, name: 'Ada Lovelace', role: '工程师' },
  { id: 2, name: 'Linus Torvalds', role: '维护者' },
];

export function Demo() {
  return (
    <DataTable
      withTableBorder
      striped
      highlightOnHover
      records={records}
      columns={[
        { accessor: 'id', title: 'ID' },
        { accessor: 'name', title: '姓名' },
        { accessor: 'role', title: '角色' },
      ]}
    />
  );
}

上例中 withTableBorderstripedhighlightOnHover 是最常用的视觉属性开关。 app/examples/column-properties-and-styling/page.tsx 进一步展示了列级别的细粒度属性,例如 widthellipsisnoWraptextAlignhidden 等,并明确指出 ellipsisnoWrap 不可同时为 true,否则会出现不可预期的渲染。

资料来源:app/getting-started/page.tsx:1-80app/examples/column-properties-and-styling/page.tsx:1-60

四、常用功能与配置速查

功能域主要 Prop / 配置文档示例
分页page, recordsPerPage, recordsPerPageOptions, onRecordsPerPageChangeapp/examples/pagination/page.tsx
行展开rowExpansion={{ content, trigger }},支持 recordIds/onRecordIdsChange 受控模式app/examples/expanding-rows/page.tsx
列分组使用 groups 替代 columns,每个组包含 idcolumnsapp/examples/column-grouping/page.tsx
固定列pinFirstColumnpinLastColumn 或列级 `pinned: 'left' \'right'`app/examples/pinning-arbitrary-columns/page.tsx
样式覆盖c, backgroundColor, borderColor 主题色键;classNamesstyles 对象app/examples/overriding-the-default-styles/page.tsx
RTL 支持包裹 <DirectionProvider> 并在 <Box dir="rtl"> 中渲染app/examples/rtl-support/RTLSupportExample.tsx

4.1 分页与页大小选择器

分页模块通过 recordsPerPageOptions: number[] 数组启用页大小下拉选择器;onRecordsPerPageChange 回调接收新页大小,可与 useState 协同完成双向绑定。 app/examples/pagination/page.tsx 同时支持自定义 paginationBreakpoint(默认 sm)和 paginationActiveTextColor 等主题键。

4.2 行展开的受控与延迟加载

app/examples/expanding-rows/page.tsx 指出 content 函数是延迟执行的,仅在行被展开时调用。这种设计允许把远端数据请求放在 content 内部,从而实现"按需加载"。在受控模式下,开发者可通过 recordIdsonRecordIdsChange 完全接管展开状态。

资料来源:app/examples/pagination/page.tsx:1-80app/examples/expanding-rows/page.tsx:1-80

五、社区反馈与已知陷阱

  1. 列宽调整行为:Issue #778 反馈拖动列宽时会同时影响相邻列,这是为了维持表格总宽度稳定的设计,但多列场景下易造成挤压。可通过显式 width 或容器外层尺寸约束来缓解。
  2. 底部 + 选择复选框的滚动条异常:Issue #743 指出当 footerisRecordSelected 同时启用时,垂直滚动条会出现"双重"或异常现象,建议反馈前先在最小复现中确认。
  3. Sticky 底部遮挡滚动条:Issue #808 报告在固定高度表格中,水平滚动条会被 sticky 底栏遮住,解决方案包括增加 min-height 或将 footer 改为非 sticky 渲染。
  4. useDataTableColumns 引用不稳定:Issue #727 与 #759 指出该 Hook 在每次渲染时返回新对象,直接作为 useEffect 依赖会触发 Maximum update depth exceeded,官方建议使用列的 id 字段或 useMemo 做稳定化。
  5. 静态类型检查慢:Issue #651 报告在大型项目里包含 DataTable 的文件 TypeScript 检查可长达 10 秒,建议拆分列定义为独立常量文件以减小推断压力。

资料来源:README.md:1-30app/contribute-and-support/page.tsx:1-80

六、贡献与支持渠道

app/contribute-and-support/page.tsx 详细说明了参与路径:

  • 功能建议:在 Discussions 区发起讨论,避免直接提 Issue 占用维护者时间。
  • 代码贡献:提交 PR 时必须next 为目标分支,指向 main 会触发部署工作流并被拒收。
  • 本地开发:仓库使用 pnpm-lock.yaml,需要通过 pnpm 管理依赖;常用脚本包括 pnpm devpnpm lintpnpm buildpnpm format(基于 Biome)。
  • 其他支持方式:Star 仓库、社交媒体扩散、GitHub Sponsors 赞助,或通过 hire-the-author 雇佣作者进行商业合作。

资料来源:app/contribute-and-support/page.tsx:1-100app/hire-the-author/page.tsx:1-40

资料来源:README.md:1-50app/config.ts:1-80

DataTable 核心组件与列管理

mantine-datatable 是一个为 Mantine 设计的轻量级、零外部业务依赖的 React 数据表组件,旨在为数据密集型应用提供 datagrid 风格的功能(如排序、筛选、分页、行选择、列钉列、可调整列宽等)。其核心入口是 <DataTable /,通过 columns(或 groups)属性驱动表头与单元格的渲染,并通过 records 驱动行数据。

章节 相关页面

继续阅读本节完整说明和来源证据。

概述与核心概念

mantine-datatable 是一个为 Mantine 设计的轻量级、零外部业务依赖的 React 数据表组件,旨在为数据密集型应用提供 datagrid 风格的功能(如排序、筛选、分页、行选择、列钉列、可调整列宽等)。其核心入口是 <DataTable />,通过 columns(或 groups)属性驱动表头与单元格的渲染,并通过 records 驱动行数据。

资料来源:README.md

组件依赖 @mantine/core@mantine/hooksclsx,且样式必须 @mantine/core 样式之后 应用,否则会出现样式覆盖问题(如社区反馈的 stripedhighlightOnHover 被覆盖的 Bug)。资料来源:app/getting-started/page.tsx

资料来源:README.md

行级特性:选择、展开、拖拽与上下文菜单

mantine-datatable 是一套基于 Mantine 的 React 数据表格组件。本页聚焦于行级交互特性:记录(行)选择、行展开、右键 / 左键上下文菜单,以及与列固定、分页、RTL 排版等周边特性的协同使用方式。这些特性均围绕 DataTable 根组件的 props 与列定义(columns)展开,几乎所有示例都可在官方文档站点的 app/examples/...

章节 相关页面

继续阅读本节完整说明和来源证据。

章节 关键能力

继续阅读本节完整说明和来源证据。

章节 兼容性问题

继续阅读本节完整说明和来源证据。

章节 触发方式

继续阅读本节完整说明和来源证据。

概述

mantine-datatable 是一套基于 Mantine 的 React 数据表格组件。本页聚焦于行级交互特性:记录(行)选择、行展开、右键 / 左键上下文菜单,以及与列固定、分页、RTL 排版等周边特性的协同使用方式。这些特性均围绕 DataTable 根组件的 props 与列定义(columns)展开,几乎所有示例都可在官方文档站点的 app/examples/ 目录下找到对应源码 (README.md:1-20)。

⚠️ 安全提示:社区曾报告通过 github-actions 注入恶意提交的安全事件,参见 issues/814discussions/813,在升级前请核对 commit 历史。

记录选择 (Records Selection)

DataTable 支持单选与多选模式,配置主要通过 selectedRecordsonSelectedRecordsChangeisRecordSelectable 等 props 驱动;通常配合表头的全选复选框与每行的复选框列一起使用 (app/examples/complex-usage-scenario/page.tsx:1-30)。典型组合包括:

常见社区问题:当 footer 与选择同时启用时,固定高度容器内会出现多余的纵向滚动条,参见 issues/743

行展开 (Expanding Rows)

行展开由 rowExpansion 属性控制,可声明式传入 content 渲染函数,该函数延迟执行——只有当用户真正展开一行时才会创建对应的 DOM,从而避免不必要的渲染开销 (app/examples/expanding-rows/page.tsx:1-30)。

关键能力

兼容性问题

Mantine v9 将 Collapse 组件的 in prop 改为 expanded,旧版 mantine-datatable 中的可折叠行实现会因此失效,参见 issues/798。升级 Mantine 时请同时关注 mantine-datatable 的兼容版本与 changelog。

上下文菜单 (Context Menu)

通过与 mantine-contextmenu 配合,可在行 / 单元格上挂载右键菜单 (app/examples/using-with-mantine-contextmenu/page.tsx:1-20)。

触发方式

与选择、固定的组合

上下文菜单常与列固定、记录选择同时启用,因此行交互的优先级与事件冒泡需要开发者显式控制;onRowClickonRowContextMenu 可共存,但要注意点击复选框时不要误触菜单 (app/examples/complex-usage-scenario/page.tsx:1-30)。

周边特性与故障排查

下表汇总了与行级特性密切相关的社区高频问题与建议做法:

问题现象缓解方式参考
静态类型极慢 (#651)IDE 内 TypeScript 检查耗时高收窄 DataTableSortStatus<T> 泛型,避免大对象 union#651
渲染死循环 (#605, #727)Maximum update depth exceeded稳定 columns 引用;useDataTableColumns 返回值避免作为 useEffect 依赖#605#727
固定表头滚动条被遮挡 (#808)footer / 选择列同时启用时滚动条异常调整 height 与 footer 内边距#808
useDataTableColumns 顺序错乱 (#759)基础列变更时顺序与配置不符锁定 key / 稳定引用后再传入#759
React 18 不兼容 (#737)mantine-datatable 要求 React ≥ 19锁版本或等待官方放宽 peer 依赖#737

使用前请确认依赖:除 @mantine/core@mantine/hooks 外,还需要安装 clsx 并按顺序加载样式 (app/getting-started/page.tsx:1-30)。如果希望贡献代码,请将 PR 提交到 next 分支(推到 main 会触发部署工作流,PR 会被拒绝)(app/contribute-and-support/page.tsx:1-30)。

进阶用法

复杂业务场景下,常见组合是:自定义列定义 + 异步数据加载(TanStack Query)+ 排序 + 分页 + 多选 + 行展开 + 行操作 + 右键菜单,官方在 examples/complex-usage-scenario 给出端到端示例 (app/examples/complex-usage-scenario/page.tsx:1-30)。复用其结构可快速搭建生产级表格页。

See Also

来源:https://github.com/icflorescu/mantine-datatable / 项目说明书

Hooks、类型系统、样式扩展与已知问题

本页面向开发者深入说明 mantine-datatable 中的 Hooks 体系、公开类型系统、样式扩展机制,并汇总社区反馈中的已知问题与规避方法,便于在生产环境中正确集成。

章节 相关页面

继续阅读本节完整说明和来源证据。

章节 1.1 useDataTableColumns

继续阅读本节完整说明和来源证据。

章节 1.2 媒体查询与副作用

继续阅读本节完整说明和来源证据。

一、Hooks 体系

mantine-datatable 通过 package/hooks/index.ts 导出若干内部 Hook,核心目标是为列定义、媒体查询、副作用执行提供稳定且可重用的封装。

1.1 `useDataTableColumns`

该 Hook 接收原始 columns 配置与若干状态量(如可见性、排序、固定列等),返回处理后的最终列数组。

import { useDataTableColumns, DataTable, type DataTableColumn } from 'mantine-datatable';

const columns: DataTableColumn<Row>[] = [/* ... */];
const { effectiveColumns } = useDataTableColumns({ columns });

社区曾反馈两个与该 Hook 相关的问题(issue #727issue #759):

  • 不必要的重渲染:返回值在每次渲染时为新引用,作为 useEffect/useMemo 依赖会触发"Maximum update depth exceeded"。建议将原始 columns 作为依赖,或使用 useStableValue 包裹(见 package/hooks/useStableValue.ts)。
  • 列顺序错乱:当 columns 引用频繁变化时,渲染列顺序可能与传入顺序不一致,建议在外层使用 useMemo 稳定引用。

1.2 媒体查询与副作用

useMediaQueriesuseMediaQueryStringOrFunctionuseMediaQueriesStringOrFunction(见 package/hooks/useMediaQueries.ts)用于解析 Mantine 断点或像素值,驱动响应式分页与密度切换。useIsomorphicLayoutEffectpackage/hooks/useIsomorphicLayoutEffect.ts)则在 SSR 场景下退化为 useEffect,避免水合不一致。

flowchart LR
  A[用户传入 columns] --> B[useStableValue]
  B --> C[useDataTableColumns]
  C --> D[effectiveColumns]
  D --> E[DataTable 渲染]
  F[媒体查询断点] --> G[useMediaQueries]
  G --> E

二、类型系统与导出

package/index.ts 集中导出组件、Props 与部分类型。然而,开发者常希望复用内部类型(例如 issue #772 中提到的 PaginationRenderContext)。

类型/组件导出位置用途
DataTablePropspackage/types/DataTableProps.ts主组件 Props
DataTableColumn<T>package/types/DataTableColumn.ts列定义泛型
PaginationRenderContextpackage/types/PaginationRenderContext.ts自定义分页上下文(曾未对外导出)
DataTablePaginationpackage/index.ts内置分页组件(issue #713 建议)

若需引用未公开类型,可通过 import type { ... } from 'mantine-datatable/dist/types/...' 临时绕过,但官方更推荐在 issue 中提出导出申请。TypeScript 静态分析慢的问题(issue #651)通常由深层泛型推断造成,可通过显式标注 DataTableColumn<Row> 缓解。

三、样式扩展机制

DataTable 提供四层样式入口,按粒度从粗到细排列(见 app/examples/overriding-the-default-styles/page.tsx):

  1. 颜色属性cbackgroundColorborderColorrowBorderColor 接受 MantineColor{ light, dark } 对象。
  2. classNames:按 root / table / header / footer / pagination 五个槽位传入 CSS Module。
  3. styles:与 classNames 对应的内联样式对象或函数,函数签名接收当前 MantineTheme
  4. 列级样式DataTableColumn 上的 cellsClassNametitleClassName 等(app/examples/column-properties-and-styling/page.tsx)。
⚠️ 样式顺序:根据 app/getting-started/page.tsx 的提示,必须先导入 @mantine/core 样式,再导入 mantine-datatable 样式,否则会出现 striped / highlightOnHover 被覆盖的问题(issue #707)。

四、已知问题与缓解措施

问题Issue根因建议
列宽调整连带兄弟列#778表格需维持总宽显式设置全部列宽,或关闭 resizable
底部条带与选择列叠加滚动条#743容器高度计算调整 minHeight 或禁用 sticky footer
sticky footer 遮挡滚动条#808z-index 冲突自定义 footerStyle 提升层级
嵌套表末行边框缺失#790CSS Module 作用域显式为子表传入 rowClassName
React 18 兼容#737peer dep react@^19锁定 Mantine 8 + React 19
安全事件#814恶意 github-actions 提交关注官方公告并升级至修复版本

更多历史问题(如 Mantine V7 支持 #420、无限循环 #605、列分组 #207)可在仓库 issues 中检索。所有贡献请遵循 app/contribute-and-support/page.tsx 的规范——PR 须合并到 next 分支。

See Also

来源:https://github.com/icflorescu/mantine-datatable / 项目说明书

失败模式与踩坑日记

保留 Doramagic 在发现、验证和编译中沉淀的项目专属风险,不把社区讨论只当作装饰信息。

high 来源证据:Resizing behaviour

可能增加新用户试用和生产接入成本。

high 来源证据:Changing base table columns causes rendering loop

可能增加新用户试用和生产接入成本。

medium 来源证据:Keep the same React peer dependencies as Mantine

可能增加新用户试用和生产接入成本。

medium 来源证据:Static typing extremely slow

可能增加新用户试用和生产接入成本。

Pitfall Log / 踩坑日志

项目:icflorescu/mantine-datatable

摘要:发现 17 个潜在踩坑项,其中 2 个为 high/blocking;最高优先级:安装坑 - 来源证据:Resizing behaviour。

1. 安装坑 · 来源证据:Resizing behaviour

  • 严重度:high
  • 证据强度:source_linked
  • 发现:GitHub 社区证据显示该项目存在一个安装相关的待验证问题:Resizing behaviour
  • 对用户的影响:可能增加新用户试用和生产接入成本。
  • 建议检查:来源问题仍为 open,Pack Agent 需要复核是否仍影响当前版本。
  • 防护动作:不得脱离来源链接放大为确定性结论;需要标注适用版本和复核状态。
  • 证据:community_evidence:github | cevd_4f9958ef0c184e8fa05c6be1749c9065 | https://github.com/icflorescu/mantine-datatable/issues/778 | 来源类型 github_issue 暴露的待验证使用条件。

2. 运行坑 · 来源证据:Changing base table columns causes rendering loop

  • 严重度:high
  • 证据强度:source_linked
  • 发现:GitHub 社区证据显示该项目存在一个运行相关的待验证问题:Changing base table columns causes rendering loop
  • 对用户的影响:可能增加新用户试用和生产接入成本。
  • 建议检查:来源问题仍为 open,Pack Agent 需要复核是否仍影响当前版本。
  • 防护动作:不得脱离来源链接放大为确定性结论;需要标注适用版本和复核状态。
  • 证据:community_evidence:github | cevd_d09c6777decb43189bf4522e2286412b | https://github.com/icflorescu/mantine-datatable/issues/759 | 来源类型 github_issue 暴露的待验证使用条件。

3. 安装坑 · 来源证据:Keep the same React peer dependencies as Mantine

  • 严重度:medium
  • 证据强度:source_linked
  • 发现:GitHub 社区证据显示该项目存在一个安装相关的待验证问题:Keep the same React peer dependencies as Mantine
  • 对用户的影响:可能增加新用户试用和生产接入成本。
  • 建议检查:来源显示可能已有修复、规避或版本变化,说明书中必须标注适用版本。
  • 防护动作:不得脱离来源链接放大为确定性结论;需要标注适用版本和复核状态。
  • 证据:community_evidence:github | cevd_13072e282f9c4ff2b24c87d872528805 | https://github.com/icflorescu/mantine-datatable/issues/737 | 来源类型 github_issue 暴露的待验证使用条件。

4. 安装坑 · 来源证据:Static typing extremely slow

  • 严重度:medium
  • 证据强度:source_linked
  • 发现:GitHub 社区证据显示该项目存在一个安装相关的待验证问题:Static typing extremely slow
  • 对用户的影响:可能增加新用户试用和生产接入成本。
  • 建议检查:来源显示可能已有修复、规避或版本变化,说明书中必须标注适用版本。
  • 防护动作:不得脱离来源链接放大为确定性结论;需要标注适用版本和复核状态。
  • 证据:community_evidence:github | cevd_14c55ce66a8b4a608e4b8561bcca8eb9 | https://github.com/icflorescu/mantine-datatable/issues/651 | 来源讨论提到 node 相关条件,需在安装/试用前复核。

5. 配置坑 · 来源证据:Resizable columns render with equal width instead of auto-fitting content

  • 严重度:medium
  • 证据强度:source_linked
  • 发现:GitHub 社区证据显示该项目存在一个配置相关的待验证问题:Resizable columns render with equal width instead of auto-fitting content
  • 对用户的影响:可能增加新用户试用和生产接入成本。
  • 建议检查:来源显示可能已有修复、规避或版本变化,说明书中必须标注适用版本。
  • 防护动作:不得脱离来源链接放大为确定性结论;需要标注适用版本和复核状态。
  • 证据:community_evidence:github | cevd_21875b7fb04e4d41b74775cb6234d4f2 | https://github.com/icflorescu/mantine-datatable/issues/736 | 来源类型 github_issue 暴露的待验证使用条件。

6. 配置坑 · 来源证据:useDataTableColumns causing unnecessary updates (Maximum update depth exceeded)

  • 严重度:medium
  • 证据强度:source_linked
  • 发现:GitHub 社区证据显示该项目存在一个配置相关的待验证问题:useDataTableColumns causing unnecessary updates (Maximum update depth exceeded)
  • 对用户的影响:可能增加新用户试用和生产接入成本。
  • 建议检查:来源显示可能已有修复、规避或版本变化,说明书中必须标注适用版本。
  • 防护动作:不得脱离来源链接放大为确定性结论;需要标注适用版本和复核状态。
  • 证据:community_evidence:github | cevd_618d21f8ce684218a4ed3ece874679b1 | https://github.com/icflorescu/mantine-datatable/issues/727 | 来源讨论提到 windows 相关条件,需在安装/试用前复核。

7. 能力坑 · 能力判断依赖假设

  • 严重度:medium
  • 证据强度:source_linked
  • 发现:README/documentation is current enough for a first validation pass.
  • 对用户的影响:假设不成立时,用户拿不到承诺的能力。
  • 建议检查:将假设转成下游验证清单。
  • 防护动作:假设必须转成验证项;没有验证结果前不能写成事实。
  • 证据:capability.assumptions | hn_item:48414978 | https://news.ycombinator.com/item?id=48414978 | README/documentation is current enough for a first validation pass.

8. 运行坑 · 来源证据:Nested tables, missing row border on last element

  • 严重度:medium
  • 证据强度:source_linked
  • 发现:GitHub 社区证据显示该项目存在一个运行相关的待验证问题:Nested tables, missing row border on last element
  • 对用户的影响:可能增加新用户试用和生产接入成本。
  • 建议检查:来源显示可能已有修复、规避或版本变化,说明书中必须标注适用版本。
  • 防护动作:不得脱离来源链接放大为确定性结论;需要标注适用版本和复核状态。
  • 证据:community_evidence:github | cevd_a06a6d8844d9449eb39bdeb0fcfb5513 | https://github.com/icflorescu/mantine-datatable/issues/790 | 来源类型 github_issue 暴露的待验证使用条件。
  • 严重度:medium
  • 证据强度:source_linked
  • 发现:GitHub 社区证据显示该项目存在一个维护/版本相关的待验证问题:Abnormal vertical scroll bar When using both footer and selection at the same time
  • 对用户的影响:可能增加新用户试用和生产接入成本。
  • 建议检查:来源显示可能已有修复、规避或版本变化,说明书中必须标注适用版本。
  • 防护动作:不得脱离来源链接放大为确定性结论;需要标注适用版本和复核状态。
  • 证据:community_evidence:github | cevd_464c51c7540f40e9b8ee4d0c585412a9 | https://github.com/icflorescu/mantine-datatable/issues/743 | 来源讨论提到 macos 相关条件,需在安装/试用前复核。
  • 严重度:medium
  • 证据强度:source_linked
  • 发现:GitHub 社区证据显示该项目存在一个维护/版本相关的待验证问题:ScrollBars are hidden behind sticky footer
  • 对用户的影响:可能增加新用户试用和生产接入成本。
  • 建议检查:来源显示可能已有修复、规避或版本变化,说明书中必须标注适用版本。
  • 防护动作:不得脱离来源链接放大为确定性结论;需要标注适用版本和复核状态。
  • 证据:community_evidence:github | cevd_00a1e7ec929f4d0fb1c6a05f9b801f2a | https://github.com/icflorescu/mantine-datatable/issues/808 | 来源讨论提到 windows 相关条件,需在安装/试用前复核。

11. 维护坑 · 来源证据:striped and highlightOnHover styling overrided

  • 严重度:medium
  • 证据强度:source_linked
  • 发现:GitHub 社区证据显示该项目存在一个维护/版本相关的待验证问题:striped and highlightOnHover styling overrided
  • 对用户的影响:可能增加新用户试用和生产接入成本。
  • 建议检查:来源显示可能已有修复、规避或版本变化,说明书中必须标注适用版本。
  • 防护动作:不得脱离来源链接放大为确定性结论;需要标注适用版本和复核状态。
  • 证据:community_evidence:github | cevd_e5d8715976b8461b9e665c4d07f9bf40 | https://github.com/icflorescu/mantine-datatable/issues/707 | 来源讨论提到 windows 相关条件,需在安装/试用前复核。

12. 维护坑 · 维护活跃度未知

  • 严重度:medium
  • 证据强度:source_linked
  • 发现:未记录 last_activity_observed。
  • 对用户的影响:新项目、停更项目和活跃项目会被混在一起,推荐信任度下降。
  • 建议检查:补 GitHub 最近 commit、release、issue/PR 响应信号。
  • 防护动作:维护活跃度未知时,推荐强度不能标为高信任。
  • 证据:evidence.maintainer_signals | hn_item:48414978 | https://news.ycombinator.com/item?id=48414978 | last_activity_observed missing

13. 安全/权限坑 · 下游验证发现风险项

  • 严重度:medium
  • 证据强度:source_linked
  • 发现:no_demo
  • 对用户的影响:下游已经要求复核,不能在页面中弱化。
  • 建议检查:进入安全/权限治理复核队列。
  • 防护动作:下游风险存在时必须保持 review/recommendation 降级。
  • 证据:downstream_validation.risk_items | hn_item:48414978 | https://news.ycombinator.com/item?id=48414978 | no_demo; severity=medium

14. 安全/权限坑 · 存在评分风险

  • 严重度:medium
  • 证据强度:source_linked
  • 发现:no_demo
  • 对用户的影响:风险会影响是否适合普通用户安装。
  • 建议检查:把风险写入边界卡,并确认是否需要人工复核。
  • 防护动作:评分风险必须进入边界卡,不能只作为内部分数。
  • 证据:risks.scoring_risks | hn_item:48414978 | https://news.ycombinator.com/item?id=48414978 | no_demo; severity=medium

15. 安全/权限坑 · 来源证据:⚠️ Security incident: malicious commits injected via github-actions -- maintainer locked out by GitHub for 20+ hours

  • 严重度:medium
  • 证据强度:source_linked
  • 发现:GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题:⚠️ Security incident: malicious commits injected via github-actions -- maintainer locked out by GitHub for 20+ hours
  • 对用户的影响:可能影响授权、密钥配置或安全边界。
  • 建议检查:来源问题仍为 open,Pack Agent 需要复核是否仍影响当前版本。
  • 防护动作:不得脱离来源链接放大为确定性结论;需要标注适用版本和复核状态。
  • 证据:community_evidence:github | cevd_de71bdc9aa1f485bad90a3601c6ab629 | https://github.com/icflorescu/mantine-datatable/issues/814 | 来源讨论提到 npm 相关条件,需在安装/试用前复核。

16. 维护坑 · issue/PR 响应质量未知

  • 严重度:low
  • 证据强度:source_linked
  • 发现:issue_or_pr_quality=unknown。
  • 对用户的影响:用户无法判断遇到问题后是否有人维护。
  • 建议检查:抽样最近 issue/PR,判断是否长期无人处理。
  • 防护动作:issue/PR 响应未知时,必须提示维护风险。
  • 证据:evidence.maintainer_signals | hn_item:48414978 | https://news.ycombinator.com/item?id=48414978 | issue_or_pr_quality=unknown

17. 维护坑 · 发布节奏不明确

  • 严重度:low
  • 证据强度:source_linked
  • 发现:release_recency=unknown。
  • 对用户的影响:安装命令和文档可能落后于代码,用户踩坑概率升高。
  • 建议检查:确认最近 release/tag 和 README 安装命令是否一致。
  • 防护动作:发布节奏未知或过期时,安装说明必须标注可能漂移。
  • 证据:evidence.maintainer_signals | hn_item:48414978 | https://news.ycombinator.com/item?id=48414978 | release_recency=unknown

来源:Doramagic 发现、验证与编译记录