支持私人形式值( 使用 前缀)
作者: henzyd创建于 2024年11月10日更新于 2026年1月25日
标签Type: Feature Request
□ 特性请求: 私人形式值
当前的行为
目前,Formik在提交数据中包含来自窗体状态的所有值. 当我们需要内部值来表达不应该提交的形式逻辑/状态时,我们必须手动过滤它们到上交件处理器中:
[JavaScript] < 福密克语 初始数值QQ 电子邮件: '', 时间戳: Date.now () // 内部值我们不希望提交 }}
Const 提交数据 = Object. from Entries () Object.intries (values). filter (([key]) * ! key. startsWith (' ')) (帮助) (三) / 提交前必须手动过滤 提交Form(提交数据); }}
翻译:
渴望的行为
Formik应自动将指定的私人值排除在提交数据之外,同时保持形式状态。 以下划线为前缀的值将被视为私有值:
```2ZZ
< 福密克语
初始数值QQ
电子邮件: '',
时间戳: Date.now ()
}}
==========================================================================================================================================================================================
// 值自动排除时间戳( T)
提交格式( 值);
}}
> 翻译:建议的解决办法
为 Formik 添加一个新的配置选项, 用于处理私有值 :
// 备选案文1: 简单的基于前缀的方法
< 福密克语
私人 ValePrefix=" " (中文(简体) ).
> 翻译:
// 备选案文2: 更灵活的配置
< 福密克语
私人 VALUESQQ
前缀 : “ ” , // 排除以 为起点的所有值
键 : ['特定键'], // 排除特定键
上游 :( key) QQ key. startsWith (' ') // 自定义逻辑
}}
> 翻译:### ? 这是谁的?
- 开发者建立需要内部状态的复杂形式
- 制定多步骤形式/单步制的小组
- 任何人跟踪表格元数据
- TypeScript用户想要私人价值的安全
描述你考虑过的其他选择
- 手动过滤于提交 - 当前方法
- 自定义Formik包装器
- 使用使用状态或zustand的外部国家管理
其他背景
这是许多开发者手动执行的常见模式. 将它建入Formik将提供一个标准,类型安全的方法来处理内部形态状态,同时减少锅炉板码.
内容来源: jaredpalmer/formik