css - Material UI GridTile 不显示没有标题的 actionIcon

标签 css reactjs overlay material-ui

我正在使用 Material-UI GridList 在我的 React 应用程序中显示一些图片。我希望在我的 GridTile 组件中的图像顶部有一个 IconButton。我可以通过将按钮传递给 actionIcon Prop 来完成此操作。但只有当我还传递了一个 title Prop 时它才会出现。在 (title='image') 时看起来像这样:

enter image description here

没有 title 属性,叠加层不会显示。传递 title=''title={null} 都有相同的结果。

是否有任何其他方法可以在 GridTile 中的图像顶部放置一个 IconButton?我的目标是得到这样的结果:

enter image description here

提前致谢,感谢任何建议!

最佳答案

仅当 title 的计算结果为 true 时,GridTile 组件才会显示叠加层和 actionIcon(截至撰写本文时,您可以看到围绕 line 200 of the source 的测试)。 nullundefined 和一个空字符串都测试为 false,这就是为什么您在使用这些值。

一种解决方法是提供一个对显示没有影响但不是falsetitle,如空格(' ')。例如,以下图 block 将有一个叠加层和可见的 actionIcon 但实际上没有标题:

<GridTile
  key={tile.img}
  title={' '}
  actionIcon={<IconButton><StarBorder color="white" /></IconButton>}
>

据我所知,这是 material-ui v0 中唯一可能的修复(除了自己实现此功能并提交拉取请求)。要获得更好、更优雅的解决方案,您将不得不考虑 material-ui v1。

Material-ui v1 有一个 GridListTileBar 组件,它控制叠加层、图标和标题的显示。这使您可以细粒度地控制要显示的内容,这样您就可以在没有变通办法的情况下实现所需的行为。

但是,我知道完全过渡到 v1(其中有很多重大更改)可能会让人望而生畏。如果你只想部分过渡,你可以 always install the two versions side by side .这将允许您使用最新的 GridList 和所有这些功能,而无需对应用程序的其余部分进行太多更改。

关于css - Material UI GridTile 不显示没有标题的 actionIcon,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49121733/

相关文章:

html - IE11 触摸设备上单指滚动与两指滚动的区别

javascript - 将命名空间分配给 src 库文件

html - CSS从混合混合模式差异中分离图像

javascript - 在内容可编辑的 ReactJS 组件中定位插入符号

javascript - 如何更新这样的嵌套状态?

c++ - 像素叠加透明

ios - 更改图片背景图片

javascript - 创建 mask 叠加聚光灯效果以显示图像

CSS 压缩不显示@font-face

html - 如何将 CSS 箭头的背景扩展到整个页面宽度?