背景
突然发现 antd 的 getFieldsValue()是可以传一个 true 参数的,如题,React Antd form.getFieldsValue() 和 form.getFieldsValue(true) 有区别吗?
验证
确实不一样
结论
getFieldsValue 提供了多种重载方法:
getFieldsValue(nameList?: true | NamePath[], filterFunc?: FilterFunc)
当不提供 nameList 时,返回所有注册字段,这也包含 List 下所有的值(即便 List 下没有绑定 Item)。
当 nameList 为 true 时,返回 store 中所有的值,包含未注册字段。例如通过 setFieldsValue 设置了不存在的 Item 的值,也可以通过 true 全部获取。
当 nameList 为数组时,返回规定路径的值。需要注意的是,nameList 为嵌套数组。例如你需要某路径值应该如下: