我正在尝试在 Formik 中使用 DatePicker 。但是当我单击 DatePicker 的日期时,它的表单值不会改变。相反,我收到了这个错误:
未捕获的类型错误:e.persist 不是 Formik._this.handleChange 的函数(formik.es6.js:5960)
我缩短代码,代码如下
const SomeComponent = () => (
<Formik
render={({
values,
handleSubmit,
handleChange,
setFieldValue
}) => {
return (
<div>
<form onSubmit={handleSubmit}>
<DatePicker
name={'joinedAt'}
value={values['joinedAt']}
onChange={handleChange}
/>
</form>
</div>
)
}}
/>
)
我用谷歌搜索了一些文件, https://github.com/jaredpalmer/formik/issues/187 和 https://github.com/jaredpalmer/formik/issues/86
所以我尝试了下面的方法,但它不起作用。
...setFieldValue
<DatePicker
name={'joinedAt'}
value={values['joinedAt']}
onChange={setFieldValue}
/>
原文由 ton1 发布,翻译遵循 CC BY-SA 4.0 许可协议
我像这样解决这个问题
2020-03-08 更新:
您可以在 setFieldValue 的第二个道具上使用
e.target.value
,这取决于您的自定义输入设计。感谢布兰登。