#4005·formik

支持私人形式值( 使用 前缀)

作者: 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