Material-UI:"提供给classes属性的键未实现"

dau*_*ret 26 material-ui

我使用withStyles()HOC来覆盖一些MUI组件样式,主题和断点.

显然有一些我不明白的地方,因为我不断遇到这样的错误:

警告:Material-UI:tab提供给classes属性的键未在Items中实现.

您只能覆盖以下其中一项:卡片,详细信息,内容,封面,头像,锁定

示例代码:https://codesandbox.io/s/6xwz50kxn3

我有一个<List />组件及其子<Items />.

我的目的是将demo.js文件中的样式仅应用于<List />组件,将demoChild.js中的样式应用于<Items />Component.

我真的很感激我对错误的解释,也许是一个解决方案?

注意:我发现其他帖子具有相同的错误,但它们似乎与我的示例有所不同.

Jul*_*ont 72

警告是由demo.js文件中的这一行引起的:

<Items {...this.props} items={items} />
Run Code Online (Sandbox Code Playgroud)

你把所有List的道具都传播到了你的身上Items.其中一个道具classes包含您在demo.js中定义的所有CSS类.由于这些是用于List,它们包括由List但不是实现的CSS类Items.因为Items正在接收这个道具,它正在读取它,因为你试图覆盖不可用的类并警告你.

您可以通过仅传播未使用的道具来解决此问题:

// Use other to capture only the props you're not using in List
const { classes, headerIsHidden, ...other } = this.props;

// Then spread only those unused props
<Items {...other} items={items} /
Run Code Online (Sandbox Code Playgroud)

然后,您将不会将classes对象传播到Items,因此您不会收到有关未实现的类的任何警告.

  • 现在我读了你的答案,我正在踢我自己没有看到它!非常感谢! (2认同)