我实际上是React的新手,我已经定制了MUI DatePicker组件,以便在不同的表单中使用
import { FormControl, FormLabel, TextField } from "@mui/material";
import { DatePicker, LocalizationProvider } from "@mui/x-date-pickers";
import { AdapterDayjs } from "@mui/x-date-pickers/AdapterDayjs";
import { Dayjs } from "dayjs";
import React from "react";
interface DatePickerProps {
label: string;
id:string;
}
const MyDatePicker = (props: DatePickerProps) => {
const [value, setValue] = React.useState<Dayjs | null>(null);
return (
<LocalizationProvider dateAdapter={AdapterDayjs}>
<FormControl sx={{ m: 1, width: "90%" }} size="small">
<DatePicker
label={props.label}
value={value}
onChange={(newValue) => {
setValue(newValue);
}}
renderInput={(params) => <TextField id={props.id} {...params} size="small" />}
/>
</FormControl>
</LocalizationProvider>
);
};
export default MyDatePicker;
所以在我的任何组件中,我都可以直接使用那个组件,而且它看起来工作得很好。
但我的问题是,如果在我使用该组件的同一表单上有大约10个不同的位置,我如何读取该DatePicker的值。
请帮帮忙
2条答案
按热度按时间nafvub8i1#
惯用的方法是提升组件的状态--这正是MUI通过提供值setValue props所做的。
fnx2tebb2#
您可以添加回调
onDateChange
,这样就不必提升状态。您可以像这样在组件中使用它