Auto-populate a calendar in an MUI (Material-UI) TextField component
To auto-populate a calendar in an MUI (Material-UI) TextField component, you can make use of the MUI DatePicker component. Here's an example of how you can achieve this:
- First, make sure you have installed the necessary dependencies. You'll need Material-UI and its pickers library.
npm install @material-ui/core @material-ui/pickers
- Import the required components and functions in your code:
import React, { useState } from 'react';
import TextField from '@material-ui/core/TextField';
import { KeyboardDatePicker, MuiPickersUtilsProvider } from '@material-ui/pickers';
import DateFnsUtils from '@date-io/date-fns';
- Create a functional component and define the state to hold the selected date value:
const MyForm = () => {
const [selectedDate, setSelectedDate] = useState(null);
const handleDateChange = (date) => {
setSelectedDate(date);
};
return (
<MuiPickersUtilsProvider utils={DateFnsUtils}>
<KeyboardDatePicker
disableToolbar
variant="inline"
format="MM/dd/yyyy"
margin="normal"
id="date-picker-inline"
label="Select Date"
value={selectedDate}
onChange={handleDateChange}
KeyboardButtonProps={{
'aria-label': 'change date',
}}
/>
<TextField
label="Selected Date"
value={selectedDate ? selectedDate.toLocaleDateString() : ''}
readOnly
/>
</MuiPickersUtilsProvider>
);
};
In the above code, the
MuiPickersUtilsProvider
component is required for providing the date utilities to the pickers.KeyboardDatePicker
is used to display the calendar andTextField
is used to display the selected date.The
handleDateChange
function is called whenever the user selects a date from the calendar. It updates the state with the selected date.Finally, you can render the component wherever needed:
ReactDOM.render(<MyForm />, document.getElementById('root'));
In this example, when the user selects a date from the calendar, the selected date will be displayed in the TextField component.
댓글
댓글 쓰기