一、前言
我们在进行数据采集功能开发的时候,往往会用到Form表单,这其中必不可少的就会用到Input(多种type类型)输入框。经常还会对其中的某一些Input输入做一些必填或者某些输入格式的限制,设置默认值和placehoder等等需求场景。我在使用React + Antd构建含有多个Input组件的Form表格时,遇到了下述问题…
二、问题描述、分析及解决办法
2.1、问题描述
一个Form表单,包含了数个Input输入框组件,其中有一些为必填的Input框,其中有一些Input组件用defaultValue属性设置了默认值,即Input框内可以看到是有数据的,但是对这些Input内容不做任何修改,直接提交Form表单,发现必填的Input框会弹出“此项不能为空 / 此项为必填项,不可为空”的报错。
直接上图更直观:
2.2、问题分析
那么,既然Input框内表现看来,是有值的,但是为什么这个校验规则会被触发呢?于是,我想要把这个设置了defaultValue值的Input的value打印出来看看到底是什么情况。结果,打印出来的value竟然为undefined!
由此看来,必填报错规则是没有问题的,问题出在了这个设置了defaultValue的Input组件的初始的value值是没有的。