- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经做了一些关于在 Material-UI 中将 props 传递给 makeStyles 的研究,并且 this answer有将 props 作为变量传递的解决方案。但如果我也可以将数组值传递给样式,那就太好了。例如,无法使用 makeStyles 设置背景图像的 url。
const useStyles = makeStyles((theme) => ({
root: {
borderRadius: props => props.raidus
backgroundImage: props => `url(${props.urls[0]})` // failure -- This will set every url to first image
}
}));
export default App = () = {
const urls = [
'path/image-1.jpg',
'path/image-2.jpg',
'path/image-3.jpg',
];
const props = {
radius: 10,
urls: urls
};
const classes = useStyles(props);
return (
<div>
{urls.map((url, index) => {
<div
key={index}
className={classes.root} // <--- I want it handled here
// styles={{ background: `url(${url})` }} // <--- alternative way
/>
)}
</div>
);
};
或者,可以使用内联样式设置背景图像的url(如注释掉的行所示),但我希望它们在Material-UI中的样式内部进行处理。这可以在类 root
中完成吗?任何帮助将不胜感激。
最佳答案
您需要另一个组件来检索 url
并将其传递给 useStyles()
const urls = ["path/image-1.jpg", "path/image-2.jpg", "path/image-3.jpg"];
const useStyles = makeStyles(theme => ({
root: {
borderRadius: props => props.radius,
backgroundImage: props => `url(${props.url})`
}
}));
function MyComponent(props) {
const { url } = props;
const styleProps = {
radius: 10,
url
};
const classes = useStyles(styleProps);
return (
<div
className={classes.root}
>
{url}
</div>
);
}
export default function App() {
return (
<div>
{urls.map((url, index) => (
<MyComponent key={index} url={url} />
))}
</div>
);
}
工作示例(从开发工具中检查background-image属性)
关于javascript - Material -UI : Pass props to useStyles when using Array. map (),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59855491/
现在,我正在使用 React Framework 和 Material-UI 库做一个项目。 我的模板来自 https://material-ui.com/getting-started/templa
ReactJS useStyles 新手问题。在常规 CSS 中,我可以让两个类共享相同的样式,例如....firstDiv, .secondDiv { border: 1px solid red;
我将 React 与 Material-UI 一起使用了一段时间,我注意到在某些示例中,当他们使用 useStyle 时,他们创建了一个名为 root 的类,然后他们使用了这个标签 & > *。我尝试
我正在尝试使用 Material ui 更改一个 div 悬停在另一个 div 上的背景。 标准 CSS 是: #a:hover ~ #b { background: #ccc; } 这是我在M
我目前正在我的应用程序中的一个页面上工作,该页面需要访问有关样式的窗口对象。 我知道对于不应在服务器上简单地使用 呈现的组件可以。但是当从 useStyles 访问窗口时,它会在 render()
如何在不使用 !important 的情况下使用样式覆盖 Material-UI 主题? const theme = createMuiTheme({ overrides: { MuiI
我想使用 useStyle 来设置类组件的样式。但这可以很容易地完成钩子(Hook)。但我想改用组件。但我不知道该怎么做。 import React,{Component} from 'react';
我试图用 makeStyles() 覆盖 React-Router 的 Link 标签以删除链接装饰。我是否错误地使用了 makeStyles?默认文本下划线仍在显示。 const useStyles
我正在开发一个小型网络应用程序,我正在使用 ReactJS 和 Material UI 开发它。在文档中提供的示例中,许多组件似乎在代码中都有 useStyles。我按照这些示例进行操作,现在基本上每
我使用 Material UI 网站上的这个例子得到了“无效的 Hook 错误”: https://material-ui.com/styles/advanced/#GlobalCss.js impo
我遇到了可怕的 React“无效 Hook 调用”错误,而且我没有运行任何 Hook 。 使用 CRA 安装 React 已安装 MUI 构建简单样式页面: import { makeStyles }
考虑一个组件,它呈现一个按钮并说这个按钮应该有一个红色的背景和一个黄色的文本颜色。还有一个父组件使用这个子组件,但是说黄色很好,但我希望背景颜色是绿色。 带样式 使用旧的 withStyles 没问题
我已经做了一些关于在 Material-UI 中将 props 传递给 makeStyles 的研究,并且 this answer有将 props 作为变量传递的解决方案。但如果我也可以将数组值传递给
我已经做了一些关于在 Material-UI 中将 props 传递给 makeStyles 的研究,并且 this answer有将 props 作为变量传递的解决方案。但如果我也可以将数组值传递给
根据标题,我在使用 React 实现 Material UI 时收到以下错误消息。 React Hook "useStyles" is called in function "appBar" whic
当我迁移到 Material Ui 的第 5 版时,我所有的样式都开始在样式中具有较低的优先级 const useStyles = makeStyles((theme) => ({ drawe
我是一名优秀的程序员,十分优秀!