Skip to content
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
This repository was archived by the owner on Nov 4, 2026. It is now read-only.

plugin-grid README 的 10 个示例块整片 schema 键面不成立 —— type: 'grid' 落到布局容器,sortable / filterable / onRowClick 等零命中 #5065

Closed

Description

@yinlianghui

发现于 #5013 的实施(plugin-grid README 三处标识符漂移)。Filed unassigned, not claiming.

#5013 修的是标识符层(gridComponents / GridSchema / GridColumn)。同一文件的示例 schema 键面是另一性质的漂移,按纪律不夹带进那个 PR,单立本卡。

现象

packages/plugin-grid/README.md 的 ## Examples / ## Features / ## Integration with Data Sources 共 10 个示例块,写的键在 ObjectGrid 上读不到。

1. type: 'grid' 根本不是本插件的键

src/index.tsx:193 用 skipFallback: true 注册 view:grid,故意不认领裸 grid —— 裸 grid 属于 @object-ui/components 的 CSS Grid 布局容器(src/renderers/layout/grid.tsx:50)。所以这些示例照抄之后渲染的是布局容器,不是数据表格。其运行时症状已立 #4787(columns="[object Object]"、mdcolumns="2" 等无效 HTML 属性泄漏到 DOM)—— 本卡是同一件事的文档侧成因。

2. 零读取的键

读点数取自 grep -c "schema.KEY" packages/plugin-grid/src/ObjectGrid.tsx(KEY 为下表首列):

README 键 schema.KEY 读点数 真相
sortable 0 排序是 ListColumn.sortable(每列),不是顶层布尔
filterable 0 无此键
onRowClick 0 是组件 prop(ObjectGridComponentProps),不是 schema 键
onSelectionChange 0 同上(prop 名为 onRowSelect)
onCellChange 0 是组件 prop
onRowSave 0 是组件 prop
onBatchSave 0 是组件 prop
dataSource 0 从 useSchemaContext() 取,不从 schema 取
object 0 真名 objectName(必填)

:337 的 "Integration with Data Sources" 示例把 dataSource 和 object 一起写进 schema,两个键都零读取,所以那个示例既取不到数据源也拿不到对象名。

3. 列对象形状

示例写 columns: [{ header: 'Name', accessorKey: 'name' }]。声明类型是 ObjectGridSchema['columns'],即 string[] | ListColumn[];ListColumnSchema 是 strict Zod 对象,header / accessorKey 会被拒绝而不是忽略。(运行时另有一条容忍支路,见 #5068。)

4. data 的类型

示例写 data: [ …行… ]。ObjectGridSchema.data 是 ViewData(对象),内联行数组那一档是 staticData(已 @deprecated)。

复核方式

for k in sortable filterable onRowClick onSelectionChange onCellChange onRowSave onBatchSave dataSource object; do
  echo "$k -> $(grep -c "schema\.$k\b" packages/plugin-grid/src/ObjectGrid.tsx)"
done
grep -n "skipFallback" packages/plugin-grid/src/index.tsx      # :195,故意不认领裸 grid
grep -n "register('grid'" packages/components/src/renderers/layout/grid.tsx   # :50,裸 grid 的真主人

抽块编译探针(#5013 实施时所用,strict、对 dist/index.d.ts)在这些块上留下 20 条既有红,全部来自无类型标注的 const schema = { … } 里的回调(TS7006/TS7031),另有一条 TS2304 Cannot find name 'dataSource'(:455 的 batch-editing 示例引用了未声明的 dataSource)。#5013 修完后这 20 条一条不动 —— 它们属于本卡。

同族

plugin-gantt 的同一性质卡是 #5057,plugin-calendar 的是 #5045。这三个是同一次 README 复核(#5002 起)在各包上的键面残留。

分级

交 PM 分诊。照抄任一示例得到的是空表格或布局容器,不是报错。

Activity

  1. yinlianghui commented on Aug 17, 2026

    @yinlianghui
    ContributorAuthor

    正文两处 schema. 后的占位符曾被 issues 端点的 HTML 清洗吃掉(<+字母判成标签),已改写为 schema.KEY 并读回确认。


    Generated by Claude Code

  2. self-assigned this
    on Aug 17, 2026
  3. yinlianghui commented on Aug 17, 2026

    @yinlianghui
    ContributorAuthor

    认领(objectui 分片 PM 直辖,批次 22 补席)—— session session_01GTRjn8xBqp75dk7kFupVRt,分支 claude/issue-5065-grid-readme-keys。os-dev 席位实施,PM 只读验收。前置 PR #5071(#5013 导入名半)已落 main 90517e1a2,行号以其后为准。

    ⚠️ 前提门(#5057 教训,强制):卡面的「schema.KEY 读点数全为 0」是普通 grep 口径,对 as any 强转形盲 —— gantt 同族卡 #5057 正是被 (schema as any).viewMode 推翻而转 pm:blocked。动手前先用 cast 感知模式逐键复测((schema as any) / (schema as 变体 / 解构后间接读),任一键被推翻 ⇒ 停下报告(该键的表述可能依赖渲染器契约裁定),其余键照修。⛔ 编译探针对授权 schema 键面全盲(BaseSchema 索引签名 + zod passthrough,三席已证)—— 键面证据只认读取点 grep,探针只用于 type 字面量 / 必填键 / 无索引签名的运行时类型。

    范围:10 个示例块 + ### Grid 速写块残余键面按 ObjectGrid 真读的键整页重写(type: 'object-grid'、objectName 必填、ListColumn 列形 —— PR #5071 的 TypeScript 节样例为基准);type: 'grid' 撞布局容器的事实(#4787 运行时症状)写进 README。⛔ 不加渲染器能力;#5068(accessorKey 容忍分支)是观察卡勿碰。


    Generated by Claude Code

  4. added a commit that references this issue on Aug 23, 2026
    9fbb9b5
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingdocumentationImprovements or additions to documentationpm:queue

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions