Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
570 views
in Technique[技术] by (71.8m points)

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}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

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

validateFields

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

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

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


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...