我们应该在表单状态中存储原始值还是已解析的值

问题描述 投票:0回答:2

介绍:

  • 我们使用formik或final-form作为表单管理员
  • 我们从API获得实体
  • 我们需要映射该实体来编辑表单值

情况1:

  • 实体具有ISO日期属性
  • 我们使用日期选择器,其onChange返回一个JS日期对象

我们应该在表单状态中存储什么:ISO date(String)或JS date(Object)?

如果我们存储ISO日期,则必须在onChange处理程序中完成解析。

案例2:

  • entity有一个boolean属性
  • 我们使用onChange返回字符串的select元素

我们应该在表单状态中存储什么:true(布尔)或“true”(字符串)?


一般的问题是:在表单状态中存储什么?

生成的onChange值可以在使用时解析吗?

或者最好确保日期选择器始终返回ISO日期或未定义,布尔字段始终返回布尔值或未定义等。

javascript reactjs redux-form formik react-final-form
2个回答
0
投票

我认为这无关紧要。使用我的库,redux-formfinal-form,有parse / format函数来管理与表单状态的转换。您可以使用这些,然后在提交时不必转换它,或者将其保留在输入组件所需的结构中,直到提交然后转换它。我认为后者技术上会更快,因为每次更改都不需要两次转换。

我经常使用qysxswpoi,一个所见即所得的编辑器,并在每个按键时将原始格式转换为表格状态的markdown,并且速度非常快,所以...我认为这取决于对你感觉更合适。 ⚖️


1
投票

案例1:我存储了所有日期,如JS日期,如果我需要,那么我转换为iso。 案例2:布尔值(onChange())

© www.soinside.com 2019 - 2024. All rights reserved.