• 1
  • 新人请关照

antd中的validateFields返回的Promise中的values对象的key对应的value为undefined

在form表单中,我想获取到一个input输入框的的name和其值,都是返回的值老是为undefined。
代码如下

   formRef = React.createRef();
   <Form  
                  name="category_form"
                  className="category_form"
                ref={this.formRef}  //创建ref
                 
                >
                  <Form.Item 
                      name="categoryName" 
                      rules={[
                        {required: true,message: '分类名不能为空'},
                      ]}
                  >
                    <Input  placeholder="请输入分类名" />
                  </Form.Item>
                </Form>
            </Modal>

通过以下代码想获取到: '{cateforyName:'input输入的内容'}' 这样的values对象,

 
    this.formRef.current.validateFields()
        .then((values) => {
          console.log(values)
        })
        .catch((errorInfo) => {
          console.log(errorInfo)
        })

但是返回的内容如下,values对象中的value一直是undefined,想不通哪里出错,请求帮忙,麻烦大佬帮我看一下吧,感谢

以下为控制台输出的内容:
警告:async-validator: ["'categoryName' is required"]
{values: {…}, errorFields: Array(1), outOfDate: false}
errorFields: Array(1)
0:
errors: ["分类名不能为空"]
name: ["categoryName"]
__proto__: Object
length: 1
__proto__: Array(0)
outOfDate: false
values: {categoryName: undefined}
阅读 103
评论
    1 个回答
    • 2.1k

    你的API使用错了,官方文档中写了。

    validateFields

    校验并获取一组输入域的值与 Error,若 fieldNames 参数为空,则校验全部组件

    (  
      [fieldNames: string[]],  
      [options: object],  
      callback(errors, values)  
    ) => void

    并没有返回 promise,而是在 callback 中调用返回的 values

      撰写回答

      登录后参与交流、获取后续更新提醒