当新计划添加有默认的属性时, 将删除“ 改变” 之后的 Schema 更新

作者: jgroth创建于 2026年9月17日更新于 2026年9月17日
标签bugneeds triage

· 先决条件

你在用什么主题?

核心项目

翻译:

6.10.1 国家

当前的行为

当母部分从目前的形式数据 ' 中获得schema'时,随`变化'而来的最新计划就会悄然放弃。 新字段永远不会产生,也没有错误或警告。

只有在新计划增加的财产有`违约'时才发生这种情况。 删除“默认”并正确应用同一更新。 任何字段类型都会受到影响。

• 预期行为

不论新计划是否增加了 " 违约 " 的财产,都应实行`schema ' 道具改变。

打开sandbox,或运行此组件:

{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? 从“ react” 导入{ use state } ; 从“@rjsf/core”导入表格; 从'@rjsf/validator-ajv8'导入验证符;

Const getSchema = (formData) ({ 类型 : “ 对象” , 属性 :{ 触发 : {类型:'字符串',标题:'Trigger'}, ... (formData?. 触发“ 显示” ) ♪ { { 额外 : { 类型 : 字符串, 标题: 'extra', 默认: “ 预设 ” , // 删除此行并错误消失 {\fn华文楷体\fs16\1cHE0E0E0} {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? : {}, {\fn华文楷体\fs16\1cHE0E0E0}

  • ;

导出默认函数 App () { c. [formData, setFormData]=使用状态(XQ);

返回( ưμ㼯A <表单 计划 : 验证符 {} 窗体Data {FormData} 类型 (活动)\\ nFormData(活动.formData)\\ n / > 打开 (三) {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?


1. " 显示 " 类型进入 " 滴滴 " 领域。
2. 预期:第二个字段 " Extra " 出现,预先填入 " preset " 。
3. 实际:没有出现。 只有 " Trigger " 出现。
4. 删除 " 默认 " 一行并重复。 `Extra'现按预期出现。

`活的Validate'没有区别;我用它来测试,没有它。

环境

减记
- OS: macOS 27.0 (英语).
- 节点:24.18.1
- 注: 11.16.0
- 反应:19.2.8

还有别的吗?

原因看起来像一面旗帜,它被设定但并不总是被清除. 流程PendingChange ()'设定处理用户 Change = true'. 其制造的 " set State " 带有不变道具,因此, " GetSnapshot beefore Update " 返回...Update:虚假的QX和 " 组件DidUpdate " 从未到达清除旗帜的线条,因为线条位于if(snapshot.should Update)'块内。 父母对Change'的答复随即到达时仍悬挂着一面呆板的旗帜。 新的计划中的 " 违约 " 是使next state.formData ' 与props.formData'不同的原因,因此,将发射警卫火和计算状态。 . . . . . . .

内容来源: rjsf-team/react-jsonschema-form