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}
阅读 8k
1 个回答

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

validateFields

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

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

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏