【问题标题】:Ant-Design form validate returns old values while using onChangeAnt-Design 表单验证在使用 onChange 时返回旧值
【发布时间】:2017-12-30 11:57:23
【问题描述】:

我正在使用这样的 ant-design 表单项:

 {getFieldDecorator('city', {initialValue:'a', rules: [{required:true,message:' '}]})(
     <select onChange={onChange}  className="form-control">
     <option  value='a' >a</option>
     <option  value='b' >b</option>
     </select>
                            }



and here is my onchange function:




onChange=()=>{
 form.validateFields((err, values) => {
            console.log(values)



        })
}

问题在于,在将值更改为“b”时,我仍然将“a”作为 onChange 函数 (console.log(values)) 中的表单值。将值从“b”更改为“a”时也会发生这种情况。

【问题讨论】:

    标签: javascript reactjs antd


    【解决方案1】:

    您将即时 onChange 行为与验证混为一谈。如果您正在寻找可立即采取行动的下拉菜单,则不需要 &lt;Form&gt;,只需单独使用 &lt;Select&gt;。

    如果你想要一个正确的带有提交功能的表单,你应该不在&lt;Select&gt; 上使用onChange,这是由antd 自动处理的。然后,当您在表单提交时调用 form.validateFields 时,您将获得正确的值。

    最后,如果您确实希望使用&lt;Form&gt; 中的字段验证立即执行操作,请使用onFieldsChange 选项而不是单个小部件onChange。

    【讨论】:

    • 我正在处理同样的问题。如何仅在选择更改(onChange)时验证表单
    猜你喜欢
    • 1970-01-01
    • 2019-10-04
    • 2019-12-25
    • 2021-07-11
    • 2019-04-26
    • 1970-01-01
    • 2019-06-17
    • 2017-05-02
    • 2019-11-26
    相关资源
    最近更新 更多