adi*_*ati 4 datepicker readonly input-field reactjs material-ui
KeyboardDatePicker 不支持其输入字段的只读属性
我尝试了 API 文档中已经提到的 readOnly 属性,但没有解决。它对父容器应用只读,而不是对 KeyboardDatePicker 中的输入字段应用。
<KeyboardDatePicker
margin="normal"
id="mui-pickers-date"
className = "dialog-calendar"
value={selectedDate}
shouldDisableDate = {handleDisableDate}
minDate = {startDate}
maxDate = {endDate}
minDateMessage = ''
onChange={handleDateChange}
format = "MM/dd/yyyy"
disablePast = {true}
disabled = {isDisabled}
allowKeyboardControl = {false}
readOnly = {true}
autoFill = {false}
KeyboardButtonProps={{
'aria-label': 'change date',
}}
Run Code Online (Sandbox Code Playgroud)
Jas*_*Jin 15
这是我尝试设置只读的方法。
<KeyboardDatePicker
...
InputProps={{ readOnly: true }}
/>
Run Code Online (Sandbox Code Playgroud)
您只需要覆盖 TextFieldComponent`。
这是工作代码:-
import React from "react";
import ReactDOM from "react-dom";
import TextField from '@material-ui/core/TextField';
import { KeyboardDatePicker, MuiPickersUtilsProvider, } from "@material-ui/pickers";
import DateFnsUtils from '@date-io/date-fns';
const TextFieldComponent = (props) => {
return <TextField {...props} disabled={true} />
}
function App() {
const [selectedDate, setSelectedDate] = React.useState(
new Date("2014-08-18T21:11:54")
);
const handleDateChange = date => {
setSelectedDate(date);
};
return (
<MuiPickersUtilsProvider utils={DateFnsUtils}>
<KeyboardDatePicker
disableToolbar
variant="inline"
format="MM/dd/yyyy"
margin="normal"
id="date-picker-inline"
label="Date picker inline"
value={selectedDate}
onChange={handleDateChange}
KeyboardButtonProps={{
"aria-label": "change date"
}}
TextFieldComponent={TextFieldComponent}
/>
</MuiPickersUtilsProvider>
);
}
const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7076 次 |
| 最近记录: |