JsonForms中tester ranks有什么作用?自定义测试器为何要设置rank值?
JsonForms 自定义测试器 rank 参数说明
核心作用
rank 是 JsonForms 用来判定渲染器优先级的核心参数,数值越高,对应渲染器的优先级越高。
JsonForms 渲染表单字段的匹配逻辑如下:
- 遍历所有已注册的渲染器对应的测试器,筛选出所有符合当前字段 schema 规则的测试器
- 从筛选结果中选取 rank 值最高的测试器,调用其绑定的渲染器渲染当前字段
你代码中 rank=3 的含义
JsonForms 内置的基础渲染器(默认文本输入、数字输入、选择器等)的 rank 值通常为 1 或 2,你配置 rank=3 可以保证:只要字段的 schema scope 后缀匹配 rating,你的自定义渲染器就会覆盖默认渲染器生效。
典型使用场景
- 当存在多个测试器匹配同一个字段时,你可以通过调整 rank 值控制哪个渲染器生效,不需要修改原有匹配规则或注销旧渲染器
- 如果你后续需要新增更细分场景的 rating 渲染器(比如只匹配某一级分类下的 rating 字段),只需要给新测试器设置大于3的rank值,就可以覆盖当前这个渲染器的优先级
import { rankWith, scopeEndsWith } from '@jsonforms/core'; export default rankWith( 3, // 自定义渲染器的优先级权重,数值越高优先级越高 scopeEndsWith('rating') );
内容的提问来源于stack exchange,提问作者Dev
相关产品推荐
相关产品推荐

