使用说明
setProps() 会先验证完整 patch,并在每个 Instance 内串行执行。Variant 变更先完成,普通绑定与公共更新事件随后才可见;失败或取消会恢复之前的 selection,不发布部分 props。
当 Component Set 根脚本继承到页面中的具体 INSTANCE 时,ctx.instance.setProps() 会使用该脚本合并后的有效 surface,并自动把 Variant 绑定定向到当前实例。未知属性、无 Runtime binding 的属性和跨 Component Set 的绑定会返回 rejected;Variant 轴提交成功时,variantReceipts 至少包含当前实例的一条 applied 回执,不会再把页面级无绑定 patch 误报为成功。
const receipt = await instance.setProps({ disabled: false, variant: { Size: 'Large', State: 'Active' },}, { signal });
if (receipt.status !== 'committed') console.warn(receipt.error);组件根脚本可以直接提交当前实例的状态轴:
const receipt = await ctx.instance.setProps({ state: 'hover' });if (receipt.status !== 'committed' || receipt.variantReceipts[0]?.status !== 'applied') { throw new Error(receipt.error?.message ?? 'Button state was not applied');}需要同步返回旧式链式句柄时可继续使用 set();需要等待最终一致状态、取消或审计时使用 setProps()。