formik.handleChange 和 formik.setFieldValue 有什么区别

hpd*_*pto 11 reactjs formik

formik中,在属性内部onChange,有时onChange = {formik.handleChange}被调用,有时onChange = {v => formik.setFieldValue('field', v)}被调用。这两者有什么区别?

是否可以用formik.setFieldValuejust代替 的使用formik.handleChange

atu*_*n23 11

handleChange返回:

handleChange: (e: React.ChangeEvent<any>) => void
Run Code Online (Sandbox Code Playgroud)

通用输入更改事件处理程序。这将更新事件发出输入的values[key]属性。如果该属性不存在,将查找输入的属性。注意:这里的“输入”是指所有HTML输入。keynamenamehandleChangeid

setFieldValue返回:

setFieldValue: (field: string, value: any, shouldValidate?: boolean) => void
Run Code Online (Sandbox Code Playgroud)

强制设置valuesvalidateOnChange如果设置为true(默认情况下),调用此函数将触发验证运行。您还可以通过将第三个参数传递为 来显式阻止/跳过验证false

可以找到写有差异的文档。