用途:当表单字段需要响应变化的表单状态或其他字段时使用本技能,覆盖数组字段与嵌套数组路径、联动字段校验触发、通过 useStore 与 form.Subscribe 的响应式读取,以及字段和表单监听器驱动的副作用。
主要能力:支持 mode="array"、pushValue、removeValue、moveValue、swapValues 等数组操作;支持 onChangeListenTo、onBlurListenTo 实现跨字段校验依赖;支持 form.Subscribe、useStore、form.store 与防抖监听器。
使用方式:先区分响应式读取与副作用再写代码;UI 片段用 form.Subscribe,组件逻辑用 useStore(form.store, selector);重置、自动保存、派生写入等副作用放在监听器中而非渲染逻辑;跨字段校验依赖用 onChangeListenTo 或 onBlurListenTo,而非手动重复校验。示例:<form.Field name="confirmPassword" validators={{ onChangeListenTo: ["password"], onChange: ({ value, fieldApi }) => value === fieldApi.form.getFieldValue("password") ? undefined : "Passwords do not match" }} />。
适用场景:动态增删字段、字段间联动校验、需要精细控制重渲染的表单。
限制与注意:TanStack Form 不会自动重渲染消费者,需有意订阅;当 useStore 或 form.Subscribe 更合适时避免默认使用 useField;监听器应聚焦副作用与状态协调;数组场景优先使用数组字段辅助方法,而非手动修改嵌套值。相关主题如校验时机、Standard Schema、自定义错误、disableErrorFlat 见 tanstack-form-validation-and-errors;数据加载与提交见 tanstack-form-data-loading-and-submission-ux;组合与 UI 集成见 tanstack-form-composition-and-ui-integration。快照日期 2026-03-24,参考 references/dynamic-patterns.md。