javascript - 清除带有初始值 React 的 Formik 字段
问题描述
代码沙盒:
问题:
单击重置按钮并清除值为“初始值”的字段
尝试:
通过以下方式重置表格的变体太多:
resetForm()
setFieldValue(<your_field_name>, '')
form.current.reset()
但是,当您在 formik 字段中有初始值时,此列表没有帮助。
片段:
import React from 'react'
import {Formik, Form, Field} from 'formik'
const Search = () => (
<Formik onSubmit={({q}, {setSubmitting}) => {
setSubmitting(false)
}} initialValues={{q: 'initial value'}} render={({resetForm}) => (
<Form>
<Field name='q' />
<button type="reset" onClick={() => resetForm()}>Reset</button> {/* <== Reset */}
</Form>
)}/>
)
解决方案
你完全正确 - 如果你有一些初始表单状态,该resetForm
操作会将值设置为这些首字母。setFieldValue
可能是手动清除字段的唯一方法:
<button type="button" onClick={() => setFieldValue('q', '')}>
Drop field
</button>
注意,type='reset'
这里不需要...
如果您需要删除多个字段,请查看此方法:
setValues({q: ''})
推荐阅读
- r - 根据另一个变量(JobSatisfaction)计算变量(工资)的平均值和标准差
- javascript - 如何在 Javascript 中传递 url 中的字符串?
- kotlin - 如何在整个项目范围内使用 Kotlin Experimental Time?
- reactjs - 使用 React Navigation 的 headerTitle 时没有正确传递道具
- php - 为什么在布尔值上执行()时出错,尝试绑定和关闭?
- java - 如何修复 io.vertx.core.impl.NoStackTraceThrowable?
- python - 如何在 sql 中查询以重新格式化查询集
- c++ - 我可以在 React Native for Windows 中使用 OpenGL 上下文吗?
- c - 关于删除链表中节点的问题
- mysql - MySQL中第一个带参数的存储过程