Skip to content

fix: prioritize persisted input values over spec defaults - #110

Merged
wang-kaopu merged 2 commits into
omdsh-dev:mainfrom
wang-kaopu:fix/input-durable-value-priority
Sep 6, 2026
Merged

wang-kaopu merged 2 commits into
omdsh-dev:mainfrom
wang-kaopu:fix/input-durable-value-priority

Conversation

@wang-kaopu

Copy link
Copy Markdown
Collaborator

变更说明

修复 InputNode 中持久化字段值与 spec 默认值的优先级问题。

此前当 input 同时包含 idvalue 时,即使用户修改后的值已经持久化,组件重新挂载后仍会优先使用 node.value,并在 mount 阶段再次将默认值写回 fields,导致用户已保存的值被覆盖。

本 PR 调整为:

  • 对普通 input,优先使用已持久化的 fields[id]
  • 仅在不存在持久化值时使用 node.value
  • mount 时仅在不存在持久化值的情况下注册 spec 默认值
  • 保持 password input 的现有安全行为不变

测试

新增回归测试,覆盖以下场景:

  1. input 带有 spec 默认值
  2. 用户修改字段值并完成持久化
  3. 组件重新挂载
  4. 已持久化的用户值优先于 spec 默认值
  5. submit payload 中继续使用恢复后的用户值

该修改也使 InputNode 的恢复语义与现有 SelectNode / SliderNode 更一致。

关联

#103inputType: "color" 的字段持久化场景提供正确的基础行为。

@wang-kaopu
wang-kaopu merged commit a9b4680 into omdsh-dev:main Sep 6, 2026
4 checks passed
@wang-kaopu
wang-kaopu deleted the fix/input-durable-value-priority branch September 6, 2026 05:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant