使用 JSON 表单模式放置条件元素

Placement of conditional elements using JSON form schemas

我正在修改 Mozillas JSON 网络表单工具 react-jsonschema-form [1] 并努力定义条件单元格的位置。

考虑使用流程的简单形式:

|- item1 
|---conditionalitem
|- item2 

我想做的是使用 JSON 模式来创建条件逻辑,以便在某些条件满足时呈现一些中间组件。我已经完成了这个并创建了一个小演示来查看 [2]。使用此逻辑,如果第一个 select 组件中的选项 select 为 option2,则将呈现第二个组件。

然而,我想要的是在 item1item2 之间呈现的条件组件。这可以通过在 dependency 对象内附加 item2 来实现,但我希望 item2 呈现而不考虑任何条件逻辑。如何实现这一目标?

提前致谢。

[1] https://github.com/rjsf-team/react-jsonschema-form
[2] https://codesandbox.io/s/red-fast-x9q0c?file=/src/App.js

是的。您可以控制项的呈现顺序。这可以在您的 uiSchema 中配置。只需在 uiSchema

中添加以下行
"ui:order": ["item1", "item2","item1conditional"]

因此您 App.js 中的 uiSchema 将变为

const uiSchema = {
 "ui:order": ["item1", "item2","item1conditional"],
 description: {
   "ui:widget": "textarea",
   classNames: "foo"
 }
};

确保将以后添加的所有项目都添加到此,否则会引发错误。