javascript - 我们应该在表单状态中存储原始值还是解析值
问题描述
介绍:
- 我们在 react 中使用 formik 或 final-form 作为表单管理器
- 我们从 API 获取实体
- 我们需要映射该实体以编辑表单值
情况1:
- 实体具有 ISO 日期属性
- 我们使用一个日期选择器,它的 onChange 返回一个 JS 日期对象
我们应该在表单状态中存储什么:ISO 日期(字符串)或 JS 日期(对象)?
如果我们存储 ISO 日期,则必须在 onChange 处理程序中进行解析。
案例二:
- 实体具有布尔属性
- 我们使用 select 元素,其 onChange 返回一个字符串
我们应该在表单状态中存储什么:真(布尔)或“真”(字符串)?
一般的问题是:在表单状态中存储什么?
使用时可以解析的原始 onChange 值?
或者最好确保日期选择器始终返回 ISO 日期或未定义,布尔字段始终返回布尔或未定义等。
解决方案
案例1:我存储了所有日期,如JS日期,如果需要,我转换为iso。
案例2:布尔(onChange())
推荐阅读
- kubernetes - 划分两个没有相同维度集的 Prometheus 指标?
- javascript - 从threejs中的gui更改时网格不更新
- angular - 为什么在许多教程中通过 npm 构建的节点模块包含在 .dockerignore 中,我们不需要它们来运行我们的应用程序
- javascript - 对齐 React Range Slider 的拇指,使其不会超出边界框
- rxjs - 为什么 rxJs api 中存在不对称性
- c# - 将 JSON 中的数组转换为列表
- matlab - BLE模块RN4871无法与Matlab连接
- flutter - 颤动的tflite对象检测在物理设备上不起作用
- django - 更新通过 ForeignKey 连接的模型
- mongodb - MongoDB聚合双重查找和管道