我创建了一个标题菜单。它在Material-UI V4中仍然有效。但我最近更新到Material-UI V5。但我有这样的错误:TypeError:无法读取undefined的属性(阅读'down')
import makeStyles from "@mui/styles/makeStyles";
import { Theme } from "@mui/system";
// NOTE: Styling header bar components
const useStyles = makeStyles((theme: Theme) => ({
title: {
flexGrow: 1,
},
linkStyle: {
textDecoration: "none",
color: "white",
marginLeft: 5,
},
desktopMenuStyle: {
display: "display",
[theme.breakpoints.down("mobile")]: {
display: "none",
},
},
mobileMenuStyle: {
display: "none",
"& .MuiList-root": {
marginTop: 40,
},
[theme.breakpoints.down("laptop")]: {
display: "block",
},
},
}));
5条答案
按热度按时间yr9zkbsy1#
将此代码写入包含组件的文件。
1.Import:
s3fp2yjn2#
例如:
取代:
l2osamch3#
用主题提供程序封装datatable组件
然后
然后
t0ybt7op4#
请注意,如果您直接导入/使用组件,并且该组件试图访问主题中的数据,您将获得此错误(或类似错误,取决于您试图访问主题中的属性)。
ThemeProvider中的“theme”数据 * 不 * 传递给导入的组件(或直接在JSX中使用的组件),它只传递给组件或元素的 * 样式化 *(通过例如样式化组件或情感)。
换句话说,
<MyComponent />
将 * 不 * 从主题接收任何数据,但styled(MyComponent)``;
* 将 * 接收主题数据。这让我犹豫了一段时间,所以我希望它能帮助其他偶然发现它的人。
h7appiyu5#