Jun*_*tae 16 reactjs react-native material-ui formik
我正在尝试在Formik中使用DatePicker.但是,当我单击DatePicker的日期时,其表单值不会更改.相反,我收到了这个错误:
未捕获的TypeError: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>
)
}}
/>
)
Run Code Online (Sandbox Code Playgroud)
我用Google搜索了一些文档,https://github.com/jaredpalmer/formik/issues/187和https://github.com/jaredpalmer/formik/issues/86
所以我尝试过如下,但它不起作用.
...setFieldValue
<DatePicker
name={'joinedAt'}
value={values['joinedAt']}
onChange={setFieldValue}
/>
Run Code Online (Sandbox Code Playgroud)
Jun*_*tae 28
我解决这个问题
<DatePicker
name={'joinedAt'}
value={values['joinedAt']}
onChange={e => setFieldValue('joinedAt', e)}
/>
Run Code Online (Sandbox Code Playgroud)
Hug*_*sse 10
如果您有更深的嵌套,则应使用 Formik Field。例子:
<Formik
validationSchema={schema}
initialValues={initialValues}
onSubmit={(values, actions) => {}}
>
<Field name="colors" component={ColorsEditor} colors={colorArray}/>
</Formik>
const ColorsEditor = ({ field, colors, form, ...props }) => {
return (
<div>
<Button onClick={() => form.setFieldValue('colors', "myValue")}>
</Button>
</div>
)
}
Run Code Online (Sandbox Code Playgroud)
因此 Field 组件已经包含了表单,其中包含您可以在需要的地方使用的 setFieldValue。它还包括错误和其他自定义所需的字段。
| 归档时间: |
|
| 查看次数: |
17900 次 |
| 最近记录: |