在 #5776(tab key → value)的闸门实跑里顺手量到,与本单同一形状,另开记录。
实测
examples/app-showcase/src/ui/pages/index.ts:82(page showcase_component_gallery):
{ type: 'element:button', properties: { label: 'Create Task', actionName: 'showcase_new_task' } },
-
schema 侧:ElementButtonPropsSchema(packages/spec/src/ui/component.zod.ts:598)声明的是 label / variant / size / icon / iconPosition / disabled / action(InlineActionSchema)—— 没有 actionName。schema 是 strip 模式,parse 把它剥掉。
-
renderer 侧:objectui 的按钮渲染器(packages/components/src/renderers/basic/elements.tsx:220)只读 props.action,全文件不读 actionName;handleClick 的第一行就是
if (!action || running) return;
所以按钮正常渲染、正常可点,点击是空转 —— 不报错、不导航、不执行动作。
os validate 对 showcase 语料实跑,这一条稳定出现:
⚠ page "showcase_component_gallery" · element:button: `actionName` is not a prop `element:button` declares
(ComponentPropsMap, @objectstack/spec/ui), so nothing verifies it …
为什么单独开
这是 #5068 component-props-unknown-key warning 期清单里剩下的两条之一(另一条 element:button 的 action.params 形状之争已由 #5777 跟踪),此前没有对应的单。#5068 距离 error 升级正卡在这类清空上。
修法(待分诊裁定)
倾向改语料:把 actionName: 'showcase_new_task' 改写成 action: { name: 'showcase_new_task', … },与页面上其它按钮以及 element-button-action 的渲染路径一致 —— 即声明侧与 renderer 早已一致(action),错的是这一处语料。
需要先确认的一点:showcase_new_task 是否是一个已注册的对象动作、以及它期望的 type/target,这决定 action 里要补哪几个键;改完应当在浏览器里点一次确认真的执行(本条只是静态量出来的,没有实跑过点击)。
另一条路是给 element:button 声明 actionName 作为「按名引用已注册动作」的简写 —— 但那是给同一件事加第二种拼法,与 Prime Directive #12 相悖,除非有真实业务拉力,否则不建议。
在 #5776(tab
key→value)的闸门实跑里顺手量到,与本单同一形状,另开记录。实测
examples/app-showcase/src/ui/pages/index.ts:82(pageshowcase_component_gallery):schema 侧:
ElementButtonPropsSchema(packages/spec/src/ui/component.zod.ts:598)声明的是label/variant/size/icon/iconPosition/disabled/action(InlineActionSchema)—— 没有actionName。schema 是 strip 模式,parse 把它剥掉。renderer 侧:objectui 的按钮渲染器(
packages/components/src/renderers/basic/elements.tsx:220)只读props.action,全文件不读actionName;handleClick的第一行就是所以按钮正常渲染、正常可点,点击是空转 —— 不报错、不导航、不执行动作。
os validate对 showcase 语料实跑,这一条稳定出现:为什么单独开
这是 #5068
component-props-unknown-keywarning 期清单里剩下的两条之一(另一条element:button的action.params形状之争已由 #5777 跟踪),此前没有对应的单。#5068 距离 error 升级正卡在这类清空上。修法(待分诊裁定)
倾向改语料:把
actionName: 'showcase_new_task'改写成action: { name: 'showcase_new_task', … },与页面上其它按钮以及element-button-action的渲染路径一致 —— 即声明侧与 renderer 早已一致(action),错的是这一处语料。需要先确认的一点:
showcase_new_task是否是一个已注册的对象动作、以及它期望的type/target,这决定action里要补哪几个键;改完应当在浏览器里点一次确认真的执行(本条只是静态量出来的,没有实跑过点击)。另一条路是给
element:button声明actionName作为「按名引用已注册动作」的简写 —— 但那是给同一件事加第二种拼法,与 Prime Directive #12 相悖,除非有真实业务拉力,否则不建议。