我try 将修改Mui样式的工作外包到不同的文件中,但问题是,当我使用"className={style es.h6}"而不是"Variant="h6"时,*.mode.css不起作用.

下面是我try 修改的一个示例:

const Void: React.FC<VoidProps> = ({name}) => {

  return (
    <>
      <Typography variant="h6">
        <BlockIcon />
        {name}
      </Typography>
    </>
  );
};

可以在css文件中编写MUI SX吗?或者有没有其他解决方案,其中样式不是在组件本身中编写的?

有人知道解决这个问题的办法吗?我有要求把样式,如css,sx和其他外的组件文件.使用MUI可以做到这一点吗?

谢谢你的帮助.

编辑/解决方案:

它现在可以与mode.css一起使用,如下例所示:

Void.tsx:

import React from "react";
import clsx from "clsx";
import styles from "./cssModules/Void.module.css"
import { Typography } from "@mui/material";
import BlockIcon from "@mui/icons-material/Block";



/**
 * @module Void
 *
 * Displays a void element with a block icon and a name.
 *
 * @param {string} name - Name of the void element
 * @returns {JSX.Element} - Void component
 */

type VoidProps = {
  name: string;
};

const Void: React.FC<VoidProps> = ({name}) => {

  return (
    <>
      <Typography className={clsx(styles.Typography)}>
        <BlockIcon />
        {name}
      </Typography>
    </>
  );
};

export default Void;



Void.module.css:

.Typography {
  color: rgb(255, 47, 0);
  background: linear-gradient(rgb(218, 143, 14), rgb(217, 255, 0)) padding-box,
  linear-gradient(to right, rgb(0, 0, 0), rgb(204, 50, 50)) border-box;
  box-shadow: 0 4px 6px rgba(50, 50, 93, 0.11), 0 1px 3px rgba(0, 0, 0, 0.08);
  padding: 0.1em 0.6em;
  border: 4px solid transparent;
  border-radius: 50em !important;
  width: 4.7em; 
  max-width: 22em;
  font-size: 1.9em !important;
}

谢谢你帮助维克多·L.

推荐答案

当然,这是有可能的.clsx库可帮助您将多个类名合并为一个字符串.

/* style.css */
.red {
  color: red;
}

.bold {
  font-weight: bold;
}

/* App.js */

import { Typography } from "@mui/material";
import clsx from "clsx";
import "./style.css";

export default function App() {
  return <Typography className={clsx("red", "bold")}>Hello, world!</Typography>;
}

我认为这个问题("当我使用className={styles.h6}而不是variant="h6"时,*.module.css不能工作")是由你的css文件引起的.

当然,在我看来,我看不到您的css文件,但我可以猜到:

h6 {
  color: red;
}

也许你已经这样定义了. 但如果你在classNameprops 中使用它,你需要这样定义css:

.h6 {
  color: red;
}

Reactjs相关问答推荐

如何使用json将购物车数组传递到后台API

使用useEffect挂钩获取数据

将cy.get()与动态类名一起使用?

值在返回页面时不更新,即使我已经更新了它们

有没有办法在Shopify中显示自定义计算的交货日期?

每次单击按钮时,Reaction组件都会重新生成

如何使图像zoom 并移动到点击点

GitHub页面未正确显示Reaction应用程序网站

StrictMode+SetInterval=双重渲染(即使使用useEffect清理)

无法通过 fetch 获取数据到上下文中

React - 如何重定向页面以显示数据修改?

React Router v6 路径中的符号

无法设置 null 的属性(设置src)

如何覆盖自定义 MUI 手风琴的样式(分隔线和折叠图标)

位于组件material-ui中的TextField中的 map 功能不起作用

Github 页面无法正确呈现 CSS,因为它是本地的

如何在react 中更新子组件中的变量?

谁能根据经验提供有关 useEffect 挂钩的更多信息

如果 URL 已随功能组件更改,则取消刷新

CORS 政策:无访问控制允许来源-AWS 和 Vercel