You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

已设multiple:false仍可多选,如何让RJSF表单Select组件仅单选?

解决RJSF搭配Ant Design时Select组件无法单选的问题

你遇到的问题核心在于RJSF会优先根据JSON Schema的类型来决定表单组件的行为,而非仅依赖uiSchema的配置。

问题原因

如果你的JSON Schema中cityId字段的类型被定义为array,哪怕你在uiSchema里设置了multiple: false,组件依然会保持多选模式——因为RJSF会认为这个字段需要接收一组值,而非单个值。

解决方案

  1. 修正JSON Schema的字段类型
    确保cityId的类型是单个值类型(比如string或number,根据你的城市ID实际类型选择),示例如下:
{
  "type": "object",
  "properties": {
    "cityId": {
      "type": "string", // 若ID是数字则改为"number"
      "title": "选择城市"
    }
  }
}
  1. 简化uiSchema配置(可选)
    你的uiSchema配置可以保留,甚至可以去掉multiple: false——因为当schema类型为单个值时,Select组件默认就是单选模式:
...uiSchema,
cityId: {
  "ui:widget": "select",
  "ui:enumOptions": list.map((c) => ({
    value: c.id,
    label: c.name,
  })),
  // "ui:options": { multiple: false }, // 这行可省略,默认即为单选
},
};

调整完成后,Select组件就会强制只能选择单个值了。

内容的提问来源于stack exchange,提问作者Shruthi R

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 08:25:56