我正在使用材料 ui 框架的分隔器组件,并且坚持颜色变化方面。对于这个框架中的大多数其他组件,我已经能够通过应用 useStyles() 方法来更改颜色,如下所示:
const useStyles = makeStyles(theme => ({
textPadding: {
paddingTop: 10,
paddingBottom: 10,
color:'white',
},
}));
Run Code Online (Sandbox Code Playgroud)
但我无法使用相同的方法更改分隔线的颜色:
const useStyles = makeStyles(theme => ({
dividerColor: {
backgroundColor: 'white',
},
}));
Run Code Online (Sandbox Code Playgroud)
我当然然后将它应用于组件:
<Divider classname={classes.dividerColor}></Divider>
Run Code Online (Sandbox Code Playgroud)
我查找了它的文档,但无法弄清楚我做错了什么。有人可以帮帮我吗?
import React from 'react';
import Checkbox from '@material-ui/core/Checkbox';
import { createMuiTheme, makeStyles, ThemeProvider } from '@material-ui/core/styles';
import { orange } from '@material-ui/core/colors';
const useStyles = makeStyles(theme => ({
root: {
color: theme.status.danger,
'&$checked': {
color: theme.status.danger,
},
},
checked: {},
}));
function CustomCheckbox() {
const classes = useStyles();
return (
<Checkbox
defaultChecked
classes={{
root: classes.root,
checked: classes.checked,
}}
/>
);
}
const theme = createMuiTheme({
status: {
danger: orange[500],
},
});
export default function CustomStyles() {
return (
<ThemeProvider theme={theme}> …Run Code Online (Sandbox Code Playgroud) 我将KeyBoardDatePickerfrom material-ui-pickerswithmoment utils用于 DatePicker。
import React, { Fragment, useState } from "react";
import {
MuiPickersUtilsProvider,
KeyboardDatePicker
} from "@material-ui/pickers";
import MomentUtils from "@date-io/moment";
import moment from "moment";
function KeyboardDatePickerExample(props) {
const [selectedDate, handleDateChange] = useState(new Date());
return (
<Fragment>
<MuiPickersUtilsProvider libInstance={moment} utils={MomentUtils}>
<KeyboardDatePicker
autoOk={true}
showTodayButton={true}
value={selectedDate}
format="D MMM, YYYY"
onChange={handleDateChange}
minDate={moment().subtract(6, "months")}
maxDate={moment()}
/>
</MuiPickersUtilsProvider>
</Fragment>
);
}
export default KeyboardDatePickerExample;
Run Code Online (Sandbox Code Playgroud)
但它不能正常工作。
首先,它没有正确显示日期格式
当我尝试编辑时,它显示随机文本和错误invalid date format。
这是一个重现该问题的沙箱。
我究竟做错了什么?
编辑:
看到 …
我有一个使用 MUI 的 React 应用程序,现在我已经使用微调器实现了悬念,它在加载内容时作为后备组件启动。我很想为回退组件添加淡入/淡出过渡,因为目前这种变化太突然了。
我的设置(对于这个特定问题的相关部分)如下:
"@glidejs/glide": "^3.4.1",
"@material-ui/core": "4.8.3",
"@material-ui/icons": "4.5.1",
"@material-ui/lab": "4.0.0-alpha.39",
"@material-ui/pickers": "3.2.10",
"@types/autosuggest-highlight": "^3.1.0",
"@types/jest": "^24.0.0",
"@types/node": "^12.0.0",
"@types/react": "^16.9.0",
"@types/react-dom": "^16.9.0",
"@types/react-redux": "^7.1.7",
"autosuggest-highlight": "^3.1.1",
"connected-react-router": "^6.8.0",
"history": "^4.10.1",
"node-sass": "^4.13.0",
"react": "^16.12.0",
"react-date-picker": "^8.0.0",
"react-dom": "^16.12.0",
"react-feather": "^2.0.3",
"react-redux": "^7.2.0",
"react-router-dom": "^5.1.2",
"react-scripts": "3.3.0",
"redux-devtools-extension": "^2.13.8",
"redux-ducks-ts": "^1.0.9",
"redux-logger": "^3.0.6",
"redux-saga": "^1.1.3",
"reselect": "^4.0.0",
"styled-components": "^4.4.1",
"typescript": "~3.7.2"
Run Code Online (Sandbox Code Playgroud)
这是应用程序的主要路由器,它有一个RouteWithSubRoutes组件接收路由作为参数并渲染react-render-dom路由组件,但基本上充当路由器切换容器
import React, { FC, Suspense } from "react";
import …Run Code Online (Sandbox Code Playgroud) 我试图摆脱主题中存在的最大宽度。
这是我在 Chrome 中看到的(如果我取消选中它,它会做我需要的):
@media (min-width: 1280px)
.MuiContainer-maxWidthLg {
max-width: 1280px;
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?我试过这样的事情:
const useStyles = makeStyles(theme => ({
root: {
'& .MuiContainer-maxWidthLg' : {
maxWidth: //No matter what I put here, it does not work
},
Run Code Online (Sandbox Code Playgroud)
但它似乎没有任何效果......我该如何覆盖它?
谢谢,
亚历克斯
我想自定义Material UISelect组件。基本上我只是想删除边框或更确切地说是轮廓。我尝试覆盖样式,尝试使用 aNativeSelect并尝试使用自定义的as InputBaseinputComponent但这些都不起作用。任何帮助将非常感激。Select
React 测试库在渲染期间不会应用sxMaterial UI 组件的 props。
例如,我指定属性以在某些断点处隐藏元素。
<>
<AppBar
data-testid="mobile"
...
sx={{
display: { xs: "block", sm: "none" }
}}
>
MOBILE
</AppBar>
<AppBar
data-testid="desktop"
...
sx={{
display: { xs: "none", sm: "block" }
}}
>
DESKTOP
</AppBar>
</>
Run Code Online (Sandbox Code Playgroud)
在浏览器中一切都按预期工作。在 React 测试库中渲染时,我得到包含两个元素的结果。从样式上可以明显看出,它们是基本的,并且sx没有应用该属性。链接到codesandbox
import { ThemeProvider } from "@mui/material/styles";
import { screen, render } from "@testing-library/react";
import darkTheme from "./darkTheme";
import App from "./App";
describe("Demo", () => {
it("should have display props", () => { …Run Code Online (Sandbox Code Playgroud) 根据 MUI 自己的 doco 和这个答案- 使用sx渲染的组件比使用其他样式机制的组件慢得多。
从表面上看,它看起来sx只是一个替代的便利 API,用于执行相同的操作 - 所以我不希望它具有如此不同的性能配置文件。
我的问题是:为什么组件的渲染速度sx如此之慢 - 它的作用有何不同?它是一个完全不同的造型引擎还是什么?
我很好奇优化它的可能性,或者提出一种折衷方案,保留大部分可用性,但忽略导致速度减慢的任何功能。
请注意,这个问题是关于“为什么性能如此不同”,而不是“为什么你认为差异不重要”。
我正在尝试遵循 MUI 的Mini 变体抽屉中给出的示例,使左侧ListItemButton能够与 React Router v6 的 Link 元素一起使用。该文档对于如何使用路由器库实现这一目标不是很清楚。我尝试了几种变体但无法使其工作。MUI 的 CodeSandBox 链接位于此处。有人可以告诉我如何启用ListItemButton像这样的路径/my-path吗?
我正在使用 MUI 选项卡,但遇到以下错误:
MUI:value提供给选项卡组件的内容无效。带有此(“0”)的选项卡value不是文档布局的一部分。确保该选项卡项目存在于文档中或不存在display: none。
该代码与 MUI 示例非常相似,它们也产生了同样的问题
material-ui ×10
reactjs ×10
javascript ×3
css ×1
frontend ×1
jss ×1
momentjs ×1
overriding ×1
react-router ×1
tabs ×1