我试着在Formik以内使用DatePicker.但当我点击DatePicker的date时,它的表单值并没有改变.相反,我得到了这个错误:

未捕获类型错误:e.persist不是函数

我简化了代码,代码如下

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/187https://github.com/jaredpalmer/formik/issues/86

所以我试着像下面这样,但它不起作用.

 ...setFieldValue

 <DatePicker
   name={'joinedAt'}
   value={values['joinedAt']}
   onChange={setFieldValue}
 />

推荐答案

我这样解决这个问题

<DatePicker
   name={'joinedAt'}
   value={values['joinedAt']}
   onChange={e => setFieldValue('joinedAt', e)}
/>

Update on 2020-03-08:

您可以在setFieldValue的第二个props 上使用e.target.value,具体取决于您的自定义输入设计.多亏了布兰登.

Reactjs相关问答推荐

URL参数和React路由中的点

为什么安装FLOBIT后,所有的输入FIELD现在都有一个蓝色的轮廓?

在Reaction+Redux+RTKQuery中对API调用进行排序

Google Firestore无法读取图像-react

如何在中间件中获取 nextAuth 会话

通过createRoot创建的React元素无法调用Provider值

react 本机屏幕转换

我可以同时使用 Gatsby 和 NEXT.JS 吗?

useRef.current.value 为空值

React - 如何重定向页面以显示数据修改?

如何实现 redux 工具包来注册用户?

如何通过 React JS 中的映射将新元素添加到对象数据数组中

动态添加或删除文本输入字段并将值设置为 React JS 中主要状态的数组

react 事件顺序

使用 react-router-dom 时弹出空白页面

React Router v6 - 访问嵌套路由和处理手写 url 的正确方法

如何使用react 路由将 url 参数限制为一组特定的值?

如何定制 React 热 toastr ?

我在使用 Elements of stripe 时使用 React router v6

Rtk 查询无效标签不使数据无效