React Material UI ThemeProvider 未应用

2023-12-20

我在用着@material-ui/核心 https://material-ui.com/处理我的 React 应用程序中的主题,但由于某种原因,某些样式没有被应用。

这是我的sandbox https://codesandbox.io/s/eloquent-sinoussi-462ed?file=/src/App.tsx将完整的代码(下面的相关片段)。

我跟着example https://material-ui.com/customization/theming/在 Material UI 的文档中,但它似乎不起作用。

有趣的是,文本确实居中对齐(我在样式中指定),但背景颜色保持默认值#fafafa代替#424242正如我的主题中所指定的。所以我猜样式正在应用,但我的主题没有应用到样式。

另一个奇怪的事情是我注销了theme.palette.background.defaultmakeStyles回调,它是#424242.

另外,如果我设置的值backgroundColor in the useStyles挂钩到静态字符串,例如#f00,它确实适用(背景颜色变为红色)。

useStyles 钩子:

const useStyles = makeStyles(
  (theme: Theme) =>
    createStyles({
      root: {
        backgroundColor: theme.palette.background.default,
        height: "100%",
        textAlign: "center",
        width: "100%"
      }
    }),
  { name: "App" }
);

应用程序组件:

const App = () => {
  const classes = useStyles();
  return (
    <>
      <CssBaseline />
      <ThemeProvider theme={darkTheme}>
        <div className={classes.root}>hello</div>
      </ThemeProvider>
    </>
  );
};

Theme

// NOTE: gray[800] = #424242
export const darkTheme = createTheme({
  palette: { background: { default: grey[800] } }
});

App(因此你的useStylescall) 位于受深色主题影响的元素层次结构之外ThemeProvider。如果您将 div 拉入其自己的组件并调用useStyles从那里开始,它工作得很好。

import React from "react";

import CssBaseline from "@material-ui/core/CssBaseline";
import {
  makeStyles,
  createStyles,
  Theme,
  ThemeProvider
} from "@material-ui/core/styles";

import { darkTheme } from "./DarkTheme";

const useStyles = makeStyles(
  (theme: Theme) =>
    createStyles({
      root: {
        backgroundColor: theme.palette.background.default,
        height: "100%",
        textAlign: "center",
        width: "100%"
      }
    }),
  { name: "App" }
);

const Hello = () => {
  const classes = useStyles();
  return <div className={classes.root}>hello</div>;
};
const App = () => {
  return (
    <>
      <CssBaseline />
      <ThemeProvider theme={darkTheme}>
        <Hello />
      </ThemeProvider>
    </>
  );
};

export default App;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

React Material UI ThemeProvider 未应用 的相关文章

随机推荐

  • 如何使用 CodePipeline 删除 S3 中的文件

    我创建了一个 CodePipeline 它从 CodeCommit 存储库获取输入 文件 并将文件部署到 S3 存储桶 当我删除 CodeCommit 存储库中的文件时 管道不会删除相应 S3 存储桶中的文件 简而言之 我希望我的 S3 存
  • SingleChildScrollView“剪切”屏幕

    这是我正在开发的登录页面的屏幕 https ibb co X22g4rc https ibb co X22g4rc 当键盘出现时 它表明存在溢出 这似乎是正常的 https ibb co mzVLJ4f https ibb co mzVLJ
  • jQuery 无法识别 Symfony JSON?

    我正在尝试从 Symfony 获取 JSON 数据 但它似乎无法正常工作 下面是 symfony 代码片段 this gt getResponse gt setHttpHeader Content Type application json
  • 在 Spring Boot 应用程序中更改 autocommit=true 的优点和缺点?

    对我来说 自动提交似乎完全被 Spring Hibernate 配置覆盖 并且这个属性在这样的配置中绝对不起任何作用 但我想以某种方式确认这一点 Spring引导1 5 10 RELEASE版本 数据库是PostgreSQL 9 5 6 数
  • 计算 Python 列表中 True 布尔值的数量

    我有一个布尔值列表 True True False False False True 我正在寻找一种方法来计算数量True在列表中 所以在上面的例子中 我希望返回的是3 我已经找到了查找特定元素出现次数的示例 但是由于我正在使用布尔值 是否
  • 发送 Facebook 请求并获得礼物 FB API

    我已经按照文档在 facebook 上成功实现了我的应用程序的 发送请求 功能here http developers facebook com docs reference dialogs requests 现在 如果用户 A 接受用户
  • shlex.split() 和 re.split() 有什么区别?

    所以我用了shlex split 最近将命令拆分为参数subprocess Popen 功能 我记得很久以前我也用过re split 函数使用指定的特定分隔符分割字符串 有人能指出它们之间的本质区别是什么吗 每个功能最适合什么场景 shle
  • 使用 WMI 挂载网络驱动器

    尝试编写 WMI 类函数以使用登录计算机的凭据在任何计算机 远程或本地 上安装网络驱动器 这是我为服务台工作人员编写的一个较大项目的类 用于在远程 PC 上进行一线修复 技术人员输入机器名称或 IP 地址 应用程序会连接到它 并允许技术人员
  • Vbscript - 比较并复制文件夹中的文件(如果比目标文件新)

    我正在尝试设计这个脚本 该脚本应该用作很多用户的登录脚本的一部分 该脚本基本上应该采用源文件夹和目标文件夹 因为基本上只是确保目标文件夹具有与源文件夹完全相同的内容 但仅当源文件的修改日期标记比目标文件新时才进行复制 我一直在思考这个基本的
  • 具有内部构造函数的最小起订量具体类

    我正在尝试最小起订量一个具有内部构造函数的具体类 即MyAssembly I have public class MyClass internal MyClass other methods including factory instan
  • 如何获得资源路径?

    我想使用 RandomAccessFile 类来访问我的应用程序附带的文件 然而 该类只接受一个字符串 它是文件的路径 如果我将文件放置在资产目录之类的位置 如何构建该文件的路径 我知道我可以使用 getAssets 方法来读取资源 但这些
  • 如何在 php docker 容器上安装/启用 pdo-odbc 驱动程序?

    我目前在为我的 php 应用程序编写 Dockerfile 时遇到问题 我的 Dockerfile 可以工作 但缺少连接到 MS SQL Server 数据库所需的 pdo odbc 驱动程序 这是我当前的 Dockerfile FROM
  • 为什么我得到的 .csv 文件的 mime 类型为“application/octet-stream”?

    我正在开发一个必须将 Excel 文件导入 MySQL 的 PHP 应用程序 所以我需要将excel文件转换为 csv格式 但是当我想使用它来获取它的类型时 FILE something type 我得到application octet
  • 角度中的 HttpClient 模块出现错误

    node modules angular common http http d ts 81 22 中出现错误 错误 NG6002 出现在 AppModule 的 NgModule imports 中 但无法解析为 NgModule 类 这可
  • 当 Angular 5 重新渲染一个大列表时,如何防止 chrome 滚动?

    我有一个角度组件 可以 ngFors 覆盖其他组件列表 我正在使用 ngx dnd 库来启用拖放 每当子组件列表大于屏幕尺寸并且我使用谷歌浏览器时 拖放项目会导致页面向下滚动 如果我调试 我可以看到角度渲染导致创建一个新的项目集合 并且从
  • 使用 read.table 读取文本文件

    我有一个文本文件id and name列 我试图将其读入 R 中的数据框 d read table foobar txt sep t 但由于某种原因 很多行被合并 例如 在我的数据框的第 500 行中 我会看到类似的内容 row 500 5
  • 在shell脚本中传递su密码

    如何使用 su 在 shell 脚本中传递密码 不带 sudo 和 except 我试过 echo password su root c 但它不起作用 最好的方法是sudo 但是由于您不需要最佳解决方案 因此您可以使用script反而 sl
  • 将 perl 脚本移植到 Clearcase 的图形用户界面

    我们的环境中运行着相当多的 perl 脚本 甚至为其创建分支和视图也是通过脚本完成的 现在我们正在将此 perl 脚本移植到基于 GUI 的环境 您更喜欢哪种语言 我们有一些内部工具以 C 形式返回 开发人员不在我们身边 这也可能会被移植
  • 函数的节流和去抖动之间的区别

    任何人都可以给我一个简单的解释 说明出于速率限制目的而对函数进行节流和去抖动之间的区别吗 对我来说 两者似乎都做同样的事情 我查了这两个博客来找出答案 但我仍然无法理解 http remysharp com 2010 07 21 throt
  • React Material UI ThemeProvider 未应用

    我在用着 material ui 核心 https material ui com 处理我的 React 应用程序中的主题 但由于某种原因 某些样式没有被应用 这是我的sandbox https codesandbox io s eloqu