Material UI v5:类型错误:无法读取未定义的属性(读取“创建”)

Mix*_*xko 34 typescript reactjs material-design material-ui

创建 ThemeSetting.tsx 上下文后,我无法使用 <Button><Button> 所有使用themeMaterial UI React.js、TypeScript 的东西:

错误

TypeError:无法读取未定义的属性(读取“创建”)push../node_modules/@mui/material/Button/Button.js.Object.ownerState.ownerState node_modules/@mui/material/Button/Button.js:67

  64 | minWidth: 64,
  65 | padding: '6px 16px',
  66 | borderRadius: theme.shape.borderRadius,
> 67 | transition: theme.transitions.create(['background-color', 'box-shadow', 'border-color', 'color'], {
     | ^  68 |   duration: theme.transitions.duration.short
  69 | }),
  70 | '&:hover': _extends({
Run Code Online (Sandbox Code Playgroud)

和主题设置.tsx

import { createTheme, ThemeProvider } from "@mui/system";

export const ThemeContextProvider: React.FC<{}> = ({ children }) => {
    const theme = createTheme({
        palette: {
            navbar: blue[100],
            tag: {
                red: red[200],
                pink: pink[200],
                purple: purple[200],
                blue: blue[200],
                green: green[200],
            },
        },
        typography: {
            fontFamily: [
                "NotoSans",
                "NotoSansThai",
                "Arial",
                "Roboto",
                "'Helvetica Neue'",
                "sans-serif",
            ].join(","),
        },
        shape: {
            borderRadius: 15,
        },
    });

    return <ThemeProvider theme={theme}>{children}</ThemeProvider>;
};
Run Code Online (Sandbox Code Playgroud)

flu*_*ggo 79

我自己刚刚遇到了这个。您可以createTheme@mui/material/styles或导入@mui/system,但它们的作用略有不同

您可以使用包中的实用程序@mui/system,或者如果您使用的是@mui/material,则可以从 导入它@mui/material/styles。区别在于theme使用的默认值(如果 React 上下文中没有可用的主题)。

其中的一个@mui/material/styles足够智能,可以填补活动主题与默认 MUI 主题之间的空白。因此,如果您正在使用@mui/material,请使用@mui/material/styles

  • 我使用了:`import { createTheme } from '@mui/system';`,当我添加到我的代码内部 ThemeProvider 时,我的 &lt;TexeField select /&gt; 组件在单击打开选项时崩溃了。以下导入:`import { createTheme } from '@mui/material/styles';` 修复了我的主题中缺少的间隙属性。我从来没有想到这会是问题所在, (8认同)