我正在尝试使用 JsonSchema-Form 组件,但是在尝试创建表单时遇到了问题,在第一个下拉列表中选择一个选项后,应该会出现一个辅助下拉列表,并为用户提供不同的选项集取决于他通过 API 调用在第一个下拉菜单中选择的内容。
问题是,在分别阅读了此处和此处找到的文档和一些示例之后,我仍然不知道如何参考我在第一个选项中选择的任何内容来影响第二个下拉列表。这是我现在拥有的一个例子:
应该通过 api 调用在第一个和第二个下拉列表中显示的 Jsons 信息:
Groups: [
{id: 1,
name: Group1}
{id: 2,
name: Group2}
]
User: [User1.1,User1.2,User2.1,User2.2,User3.1,User3.2, ....]
如果用户选择第一组,那么我必须使用以下 api 调用来获取用户类型,这让我得到了 USER json。
调用JSonChemaForm的组件
render(){
return(
<JsonSchemaForm
schema={someSchema(GroupOptions)}
formData={this.state.formData}
onChange={{}}
uiSchema={someUiSchema()}
onError={() => {}}
showErrorList={false}
noHtml5Validate
liveValidate
>
)
}
架构文件内容:
export const someSchema = GroupOptions => ({
type: 'object',
required: [
'groups', 'users',
],
properties: {
groups: {
title: 'Group',
enum: GroupOptions.map(i=> i.id),
enumNames: GroupOptions.map(n => n.name),
},
users: {
title: 'Type',
enum: [],
enumNames: [],
},
},
});
export const someUISchema = () => ({
groups: {
'ui:autofocus': true,
'ui:options': {
size: {
lg: 15,
},
},
},
types: {
'ui:options': {
size: {
lg: 15,
},
},
},
});
我不太确定如何进行此操作,也不确定如何使用 Onchange 方法来做我想做的事。