formik.handleChange 和 formik.setFieldValue 有什么区别
What is the difference between formik.handleChange and formik.setFieldValue
在formik中,在属性onChange
里面,有时会调用onChange = {formik.handleChange}
,有时会调用onChange = {v => formik.setFieldValue('field', v)}
。这两个有什么区别?
是否可以仅使用 formik.handleChange
来代替 formik.setFieldValue
?
handleChange
returns:
handleChange: (e: React.ChangeEvent<any>) => void
通用输入更改事件处理程序。这将更新 values[key]
,其中 key
是事件发射输入的 name
属性。如果 name
属性不存在,handleChange
将查找输入的 id
属性。注意:这里的“输入”是指所有HTML个输入。
setFieldValue
returns:
setFieldValue: (field: string, value: any, shouldValidate?: boolean) => void
命令式设置values
。如果 validateOnChange
设置为 true
(默认情况下),调用此方法将触发对 运行 的验证。您还可以通过将第三个参数作为 false
.
进行显式 prevent/skip 验证
可以找到doc哪里写的不一样
在formik中,在属性onChange
里面,有时会调用onChange = {formik.handleChange}
,有时会调用onChange = {v => formik.setFieldValue('field', v)}
。这两个有什么区别?
是否可以仅使用 formik.handleChange
来代替 formik.setFieldValue
?
handleChange
returns:
handleChange: (e: React.ChangeEvent<any>) => void
通用输入更改事件处理程序。这将更新 values[key]
,其中 key
是事件发射输入的 name
属性。如果 name
属性不存在,handleChange
将查找输入的 id
属性。注意:这里的“输入”是指所有HTML个输入。
setFieldValue
returns:
setFieldValue: (field: string, value: any, shouldValidate?: boolean) => void
命令式设置values
。如果 validateOnChange
设置为 true
(默认情况下),调用此方法将触发对 运行 的验证。您还可以通过将第三个参数作为 false
.
可以找到doc哪里写的不一样