使用 MUI ThemeProvider 导致 "undefined" 错误
Using MUI ThemeProvider causes "undefined" errors
我有一个使用 MUI 制作的小应用程序。它工作正常,直到我尝试添加 ThemeProvider
。一旦完成,应用程序就会中断,我正在使用的所有 MUI 组件开始抛出 undefined
.
我正在尝试使用 createTheme
,并已确保从 "@mui/material/styles"
导入它,因为我知道有一个类似的包给其他人带来了问题。
这是我的代码:
const light = {
palette: {
type: "light",
},
};
const dark = {
palette: {
type: "dark",
},
};
function App() {
const [isDarkTheme, setIsDarkTheme] = useState(false);
return (
<ThemeProvider theme={isDarkTheme ? createTheme(dark) : createTheme(light)}>
// things
</ThemeProvider>
)
}
然后在我的控制台中出现 Uncaught TypeError: Cannot read properties of undefined (reading 'paper')
之类的错误
你知道我哪里出错了吗?
不知道你是否还需要它。我添加了一个按钮,但您可以使用上下文或您正在使用的任何内容。
import * as React from "react";
import ReactDOM from "react-dom";
import {
Button,
ThemeProvider,
createTheme,
Paper
} from "@mui/material";
const light = {
palette: {
mode: "light",
},
};
const dark = {
palette: {
mode: "dark",
},
};
export default function App() {
const [isDarkTheme, setIsDarkTheme] = React.useState(true);
return (
<ThemeProvider theme={isDarkTheme ? createTheme(dark) : createTheme(light)}>
<Paper>
<Button
onClick={() => {
setIsDarkTheme(!isDarkTheme);
}}
>
mode
</Button>
</Paper>
</ThemeProvider>
);
}
这是你的问题
const dark = {
palette: {
//type: "dark" <---
mode: "dark",
},
};
附带说明一下,这就是我的做法。
export default function App() {
const [isDarkTheme, setIsDarkTheme] = React.useState(true);
const theme = createTheme({
palette: {
mode: isDarkTheme ? "light" : "dark"
}
});
return (
<ThemeProvider theme={theme}>
<Paper>
<Button
onClick={() => {
setIsDarkTheme(!isDarkTheme);
}}
>
mode
</Button>
</Paper>
</ThemeProvider>
);
}
我有一个使用 MUI 制作的小应用程序。它工作正常,直到我尝试添加 ThemeProvider
。一旦完成,应用程序就会中断,我正在使用的所有 MUI 组件开始抛出 undefined
.
我正在尝试使用 createTheme
,并已确保从 "@mui/material/styles"
导入它,因为我知道有一个类似的包给其他人带来了问题。
这是我的代码:
const light = {
palette: {
type: "light",
},
};
const dark = {
palette: {
type: "dark",
},
};
function App() {
const [isDarkTheme, setIsDarkTheme] = useState(false);
return (
<ThemeProvider theme={isDarkTheme ? createTheme(dark) : createTheme(light)}>
// things
</ThemeProvider>
)
}
然后在我的控制台中出现 Uncaught TypeError: Cannot read properties of undefined (reading 'paper')
你知道我哪里出错了吗?
不知道你是否还需要它。我添加了一个按钮,但您可以使用上下文或您正在使用的任何内容。
import * as React from "react";
import ReactDOM from "react-dom";
import {
Button,
ThemeProvider,
createTheme,
Paper
} from "@mui/material";
const light = {
palette: {
mode: "light",
},
};
const dark = {
palette: {
mode: "dark",
},
};
export default function App() {
const [isDarkTheme, setIsDarkTheme] = React.useState(true);
return (
<ThemeProvider theme={isDarkTheme ? createTheme(dark) : createTheme(light)}>
<Paper>
<Button
onClick={() => {
setIsDarkTheme(!isDarkTheme);
}}
>
mode
</Button>
</Paper>
</ThemeProvider>
);
}
这是你的问题
const dark = {
palette: {
//type: "dark" <---
mode: "dark",
},
};
附带说明一下,这就是我的做法。
export default function App() {
const [isDarkTheme, setIsDarkTheme] = React.useState(true);
const theme = createTheme({
palette: {
mode: isDarkTheme ? "light" : "dark"
}
});
return (
<ThemeProvider theme={theme}>
<Paper>
<Button
onClick={() => {
setIsDarkTheme(!isDarkTheme);
}}
>
mode
</Button>
</Paper>
</ThemeProvider>
);
}