javascript - 有没有办法在反应最终形式中禁用嵌套字段名称功能?
问题描述
我正在研究一种显然由反应最终形式提供支持的形式。在表单组件中,我从 API 服务器获取数据,响应正文包括如下内容:
{
"configs": {
"name": "abc",
"display.name": "Abc",
"value": 12,
"read.only": true
}
}
正如我们所看到的,在configs
. react final 形式可以显示类似name
andvalue
的值,但不能显示类似display.name
and的值,read.only
因为它们的键中有一个点 -> .
。
我知道我可以.
用下划线之类的东西来改变这些点(),它会起作用。但问题是我们的后端开发人员说,使用点 ( .
) 来分隔键名在后端非常常见,因此无法选择用其他分隔符替换点。
我目前正在前端用下划线替换这些分隔符,但这种逻辑无处不在,我认为应该有更好的方法来解决这个问题。谢谢!
解决方案
我认为答案是最终形式不支持带点的键。Final Form 需要某种方式来了解何时更深入地了解表单值对象。
我能想到的唯一解决方案是以某种方式告诉 Final Form 使用另一个字符(类似于在 VIM 中进行搜索和替换时如何选择不同的“分隔符”字符)作为“点”。因此,您可以将您的显示名称称为<Field name="configs/display.name" delimiter="/"/>
,但这感觉像是一个非常极端的情况。
从长远来看,我想允许为每个字段提供一个类型安全的获取/设置镜头,这也可以解决这个问题。
希望我有更好的消息告诉你...
推荐阅读
- spring - Spring boot - 带有未传递参数的 @getMapping 方法
- spring-boot - Spring AOP 与 Spring Kafka 没有按预期工作
- count - Power BI - 我如何计算列中值的出现次数?
- sql - 将多个表连接或连接到 CodeIgniter 3 中的单个表,如果有一个空单元格,则不会省略行
- spring - Spring Boot Rest Controller 过时参数
- apache-kafka - 关键主题中的奇怪字符键
- javascript - 使用 tensorflow.js 进行对象检测
- awk - awk 插入值和删除字段
- html - 无法使用百分比调整 HTML 输入的大小
- excel - 如何将 * 放在 FILTER 函数的条件中?