我有一个日期选择器,当用户单击字段中的任何地方而不仅仅是日历图标时,我希望显示该选择器。
这是挑选者
export function DatePickerField(props) {
......
return (
<Grid container>
<MuiPickersUtilsProvider utils={DateFnsUtils}>
<KeyboardDatePicker
{...field}
{...props}
disableToolbar
inputVariant="outlined"
value={selectedDate}
onChange={_onChange}
error={isError}
autoOk
invalidDateMessage={isError && error}
helperText={isError && error}
/>
</MuiPickersUtilsProvider>
</Grid>
);
}
我需要这样做,因为如果手动输入日期,它不会抛出错误,但我在表单数据中得到invalid date
。
如何在单击字段时显示选择器?
2条答案
按热度按时间li9yvcax1#
MUI v5在
@mui/lab
包中增加了DatePicker
组件。如果你想在TextField
里面点击后打开一个选择器,可以使用MobileDatePicker
,不过这个没有日历图标,如果你想有日历图标,请参阅this答案。但是
DesktopDatePicker
确实有日历图标,但是你必须编写额外的代码来控制open
的状态,并告诉选择器在点击TextField
时打开:原始应答
您可以控制
KeyboardDatePicker
的open
状态,并在单击TextField
时将其设置为true
:现场演示
yacmzcpb2#
如果您使用的是
<TextInput/>
而不是<DatePicker/>
。如果您使用的是旧版本的Material UI,而该UI没有DatePicker或只想使用TextInput。