升级Material UI 5后报找不到@mui/lab/AdapterDateFns,Timepicker无法使用
MUI v5升级后TimePicker报错找不到
AdapterDateFns解决方案 - 根因说明:MUI v5 beta版本之后已正式将npm包命名空间从
@material-ui/*迁移为@mui/*,你当前安装的仍是旧命名空间的依赖,与代码中@mui/lab的导入路径不匹配;同时v5后续版本已将时间日期选择器相关组件及适配器从lab包拆分至@mui/x-date-pickers独立包中,旧导入路径已废弃。 - 修复步骤:
- 卸载旧命名空间的无效依赖
# npm 用户执行 npm uninstall @material-ui/core @material-ui/lab # yarn 用户执行 yarn remove @material-ui/core @material-ui/lab
- 安装新命名空间的完整依赖
# npm 用户执行 npm install @mui/material @mui/lab @mui/x-date-pickers date-fns # yarn 用户执行 yarn add @mui/material @mui/lab @mui/x-date-pickers date-fns
- 修正代码中的导入和组件引用
将原导入路径替换为新的x-date-pickers路径,同时需要用LocalizationProvider全局包裹使用时间选择器的业务组件,示例代码如下:
import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider'; import AdapterDateFns from '@mui/x-date-pickers/AdapterDateFns'; import { TimePicker } from '@mui/x-date-pickers/TimePicker'; import TextField from '@mui/material/TextField'; function MyTimePicker() { const [timeValue, setTimeValue] = React.useState(null); return ( <LocalizationProvider dateAdapter={AdapterDateFns}> <TimePicker label="选择时间" value={timeValue} onChange={(newVal) => setTimeValue(newVal)} renderInput={(params) => <TextField {...params} />} /> </LocalizationProvider> ); }
内容的提问来源于stack exchange,提问作者diabetico
相关产品推荐
相关产品推荐

