css - 如何使用 react material-ui 编写媒体相关代码?
问题描述
通过阅读文档,我认为后来 material-ui 中的好解决方案是useMediaQuery
,但充其量我无法正确解决。我的目标是在打印页面时隐藏菜单,所以我写了如下内容:
if (!useMediaQuery("print")) {
... code to be hidden
}
它编译执行很好,但不起作用。当浏览器进入打印预览模式 (FF 65) 时,似乎没有呈现组件。
关于如何实现这一目标的任何想法?
解决方案
目前 useMediaQuery 是不稳定的文档
⚠️ useMediaQuery 不稳定,因为钩子还不稳定,因此它以不稳定的前缀导出。请注意,它取决于 react@next 和 react-dom@next。
我发现的最佳选择是:
const styles = {
myClass:{
'@media print' : {
display: 'none'
}}
}
class MyComponent extends React.Component {
render() {
const { classes } = this.props;
return (
<div className={classes.myClass}>
No show on print
</div>
);
}
}
export default withStyles(styles)(MyComponent);
推荐阅读
- python - 使用 BeautifulSoup 制作 requests.post 以访问子页面?
- java - (Java) 为什么这个构造函数会导致空指针异常?
- azure - 无法针对在 Azure 应用服务中注册的域添加 CNAME 记录
- android - 我们如何更改密钥库别名
- javascript - 显示函数而不是返回数据值
- ios - 更新 ios 13 后,Inapp 浏览器在 ionic 3 项目中显示错误
- reactjs - 无法在反应应用程序中使用反应贝宝按钮 v2 进行测试交易
- docker - 使用 TensorFlow 服务(Docker/Kubernetes)时的数据处理
- javascript - 即使鼠标移出,Mouseenter 事件也会触发两次
- hyperlink - 将鼠标悬停在文本上方时,使 Latex 中的 href 改变颜色