You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法为MUI组件使用自定义调色板,触发读取'100'属性未定义错误

问题原因及修复方案

  • 核心问题:主题API导入路径错误
    你当前从@mui/system导入ThemeProvider和createTheme,这个包提供的是无MUI默认主题预设的基础版本,缺少完整的调色板配置,解析颜色时会尝试访问默认色阶的100属性,因此触发undefined报错。
    正确导入路径为@mui/material/styles。
  • 若你使用TypeScript开发,需要额外对Palette接口做类型扩充,才能识别自定义的midnightBlue字段,JavaScript项目无需额外处理。

修正后代码

import AppBar from "@mui/material/AppBar";
import Box from "@mui/material/Box";
import Toolbar from "@mui/material/Toolbar";
import Typography from "@mui/material/Typography";
import Button from "@mui/material/Button";
// 修正导入路径
import { ThemeProvider, createTheme } from "@mui/material/styles";

const Navbar = () => {
  const theme = createTheme({
    palette: {
      background: {
        midnightBlue: "#0A1929"
      }
    },
  });

  return (
    <ThemeProvider theme={theme}>
      <Box sx={{ flexGrow: 1, bgColor: "background.midnightBlue"}}>
        <AppBar position="static">
          <Toolbar>
            <Typography variant="h6" component="div" sx={{ flexGrow: 1 }}>
              Name
            </Typography>
            <Button color="inherit">Link 1</Button>
            <Button color="inherit">Link 2</Button>
            <Button color="inherit">Link 3</Button>
            <Button color="inherit">Link 4</Button>
          </Toolbar>
        </AppBar>
      </Box>
    </ThemeProvider>
  );
};

export default Navbar;

补充提示:现有代码中Box的背景色会被自带默认背景的AppBar覆盖,如果你需要修改导航栏本身的背景色,可将bgColor: "background.midnightBlue"配置移到AppBar的sx属性中。

内容的提问来源于stack exchange,提问作者Josh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 22:06:03