You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Material UI DatePicker语言切换失效问题求助

解决Material UI DatePicker无法切换波兰语的问题

以下是针对你遇到的问题的具体排查和解决步骤:


1. 修正LocalizationProvider的属性名

在@mui/x-date-pickers v6+版本中,设置语言区域的属性是adapterLocale,而非你代码中的locale,这是最可能导致语言不生效的核心原因:

// 错误写法
<LocalizationProvider dateAdapter={AdapterDateFns} locale={plLocale}>

// 正确写法
<LocalizationProvider dateAdapter={AdapterDateFns} adapterLocale={plLocale}>

2. 清理重复的Locale导入

你当前重复导入了波兰语Locale,可能引发变量冲突,保留其中一种导入方式即可:

// 保留此行,删除另一行重复导入
import plLocale from 'date-fns/locale/pl';
// import { pl } from 'date-fns/locale'; // 移除该行

3. 验证依赖版本兼容性

确保date-fns和@mui/x-date-pickers版本匹配:

  • @mui/x-date-pickers v6 需搭配 date-fns v2.x(v3.x暂不兼容)
  • 检查package.json中的版本示例:
    "date-fns": "^2.30.0",
    "@mui/x-date-pickers": "^6.18.0"
    

若版本不兼容,执行命令更新到匹配版本:

npm install date-fns@^2.30.0 @mui/x-date-pickers@^6.18.0

4. 确保全局包裹LocalizationProvider

若已将LocalizationProvider移至index.js,需保证它包裹整个应用,且无其他同组件嵌套覆盖:

// index.js
import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';
import { AdapterDateFns } from '@mui/x-date-pickers/AdapterDateFns';
import plLocale from 'date-fns/locale/pl';

ReactDOM.createRoot(document.getElementById('root')).render(
  <LocalizationProvider dateAdapter={AdapterDateFns} adapterLocale={plLocale}>
    <App />
  </LocalizationProvider>
);

5. 重置依赖(可选)

若上述步骤仍无效,尝试清除依赖缓存后重新安装:

rm -rf node_modules package-lock.json
npm install

完成修改后,打开DatePicker弹窗,检查月份名称(如Styczeń、Luty)、星期缩写(如Pn、Wt)是否已切换为波兰语。

内容的提问来源于stack exchange,提问作者kulonbomba

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 10:13:28