javascript - 在 Material UI 中选择日期时出现“handleChange 不是函数”错误
问题描述
在组件中选择特定日期时,如上所述,由于“handleChange 不是函数”DatePicker
而出现错误。组件被包裹在. 预计在输入时显示日期。怎么可能解决?请看下面的代码:DatePicker
Controller
react-hook-form
DatePicker
<form noValidate autoComplete="off" onSubmit={handleSubmit(onSubmit)}>
<Controller
control={control}
name="date"
render={({ handleDateChange, selectedDate, ref }) => (
<>
<MuiPickersUtilsProvider utils={DateFnsUtils}>
<Grid container justify="space-around">
<DatePicker
ref={ref}
value={selectedDate}
onChange={handleDateChange}
format={`d | ` + `MMMM | ` + `yyyy`}
disablePast
animateYearScrolling
margin="normal"
style={{ cursor: "pointer" }}
/>
</Grid>
</MuiPickersUtilsProvider>
<br />
</>
)}
rules={{
required: "Date is required"
}}
/>
</form>
这是 CodeSandbox 链接:https ://codesandbox.io/s/jolly-currying-lwtrj
非常感谢任何建议或代码更改。
解决方案
首先,没有handleDateChange
or之类的属性selectedDate
,也许这就是您的意思:
render={({ onChange: handleDateChange, value: selectedDate, ref }) => (
其次,您使用的是react-hook-form
v7,render
方法签名Controller
已更改。请参阅此处的迁移指南。您需要从field
属性中获取输入道具,而不是直接从渲染道具中获取:
render={({ field }) => {
const {
onChange: handleDateChange,
value: selectedDate,
ref
} = field;
完整的工作代码:
<Controller
control={control}
name="date"
render={({ field }) => {
const {
onChange: handleDateChange,
value: selectedDate,
ref
} = field;
return (
<>
<MuiPickersUtilsProvider utils={DateFnsUtils}>
<Grid container justify="space-around">
<DatePicker
ref={ref}
value={selectedDate}
onChange={handleDateChange}
format={`d | ` + `MMMM | ` + `yyyy`}
disablePast
animateYearScrolling
margin="normal"
style={{ cursor: "pointer" }}
/>
</Grid>
</MuiPickersUtilsProvider>
<br />
</>
);
}}
rules={{
required: "Date is required"
}}
/>
现场演示
推荐阅读
- django - 如何使用 Docker 将 Tailwind css 集成到我的 Django 项目中?
- c++ - 如何加快此目录列表功能?
- c# - 使用实体框架从父路径创建子层次结构
- java - java - 如何使用选择来验证java类中的多个值?
- r - 在 R 中重新分类因子水平
- python - 使用 cython/numpy/通过使用另一个包加速 pandas 数据帧子集
- typescript - 如何在该计算属性方法中读取计算属性的当前值?
- php - ( ErrorTypeError: Failed to fetch ) 当我尝试从 react native 将值插入我的 Mysql 数据库(在线托管)时出错
- javascript - 引导卡上的分页
- pine-script - 是否可以将文本输入一起添加到一个变量中?