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

React-jsonschema-form:如何在UI Schema中实现条件禁用输入框?

React JSON Schema Form 实现复选框控制输入框禁用的方案

直接靠 uiSchema 本身的静态配置没法实现这种动态条件逻辑——uiSchema 主要负责 UI 的静态样式、组件映射、提示文本这类固定配置,本身不支持内嵌条件判断。不过你可以利用 uiSchema 里支持动态计算的属性来实现这个需求,具体写法如下:

你的 schema 保持不变:

const schema = {
  type: 'object',
  properties: {
    name: { type: 'string' },
    disableInput: { type: 'boolean' },
  },
};

然后在 uiSchema 里给 name 字段配置 ui:disabled 属性,传入一个依赖 formData 的函数:

const uiSchema = {
  name: {
    'ui:disabled': (formData) => formData?.disableInput === true
  }
};

原理很简单:ui:disabled 支持接收函数作为值,函数会拿到当前表单的 formData。当勾选 disableInput 复选框时,formData 里的该字段会变成 true,函数返回 true 就会触发输入框禁用;取消勾选时返回 false,输入框恢复可用。

如果是更复杂的交互逻辑,可能需要自定义组件或者监听表单 onChange 事件手动处理,但针对你这个需求,上面的写法已经完全够用。

内容的提问来源于stack exchange,提问作者Mortal Wombat

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 20:23:12