繁体   English   中英

从 mui v4 迁移到 v5 | TypeError:无法读取未定义的属性(读取“keyboardDate”)

[英]Migrating from mui v4 to v5 | TypeError: Cannot read properties of undefined (reading 'keyboardDate')

你好,在将 MUI v4 更新到版本 v5 后,我得到了错误测试,看起来像这样

    TypeError: Cannot read properties of undefined (reading 'keyboardDate')

      17 |   it("should render correctly without any errors", () => {
      18 |     expect(
    > 19 |       renderer.create(<DatePickerElement onChange={onChange} value="10/08/1981" />).toJSON(),
         |                ^
      20 |     ).toMatchSnapshot();
      21 |   });
      22 |   // props testing

我已经根据指南迁移完成了我认为的所有事情,并且想不出为什么这个失败的组件被新的<LocalizationProvider dateAdapter={AdapterDateFns} utils={DateFnsUtils}>并且工作正常只有测试失败的原因渲染方法是否有人遇到过类似的问题?

it("should render correctly without any errors", () => {
expect(
  renderer
    .create(<DatePickerElement onChange={onChange} value="10/08/1981" />)
    .toJSON(),
).toMatchSnapshot();  });

随着新的迁移,一些 Datepicker 依赖项似乎不稳定或不兼容,我发现官方 mui 文档在指定兼容版本方面做得不好。 不过,这些文档提供了有关从 @material-ui 到 @mui 的选择器迁移的其他信息。

我遇到了未定义的 keyboardDate 问题并通过安装这些特定版本的依赖项解决了它:

我使用的依赖项:

"@date-io/date-fns": "^1.3.13",
"@date-io/moment": "^1.3.13",
"date-fns": "^2.23.0",
"@mui/x-date-pickers": "^5.0.10",
"@mui/lab": "^5.0.0-alpha.112",

导入:请记住从@mui/x-date-pickers pickers 导入 LocalizationProvider、AdapterDateFns、DatePicker,因为 @mui/lab v5 移动了它们的位置。

片段:

<LocalizationProvider dateAdapter={AdapterDateFns} utils={MomentUtils}>
  <DatePicker 
    label='Start Date'
    value={value}
    onChange={handleChange}
    inputFormat="mm/dd/yyyy"
    renderInput={(params) => <TextField {...params} />}
  />
</LocalizationProvider>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM