是否可以在 Gatsby 中使用 styled-components 设置 StaticImage 的样式?

Posted

技术标签:

【中文标题】是否可以在 Gatsby 中使用 styled-components 设置 StaticImage 的样式?【英文标题】:Is it possible to style StaticImage with styled-components in Gatsby? 【发布时间】:2021-12-09 21:51:07 【问题描述】:

我尝试用这种方式在 Gatsby 中使用 styled-components 设置 StaticImage 的样式:

    const HeroImage = styled(StaticImage)`
        display: block;
        grid-row: 1/1;
        grid-column: 7/-1;
    `;

并像这样渲染它:

    <HeroImage
      src="../assets/images/hero.svg"
      
      placeholder="blurred"
    />

我不知道为什么,但是如果这个组件被设置了样式,它就不会显示出来。在 Gatsby 中是否可以使用 styled-components 为 StaticImage 设置样式?

【问题讨论】:

【参考方案1】:

是否可以使用 styled-components 来设置 StaticImage 的样式 盖茨比?

不,不可能。这是一个已知的限制,它依赖于 StaticImage 不支持像 @ 这样的 HOC(High-Order Components)这一事实987654323@是。

来自documentation:

StaticImage 组件不支持高阶组件, 其中包括来自 Emotion 等库的 styled 函数 和样式组件。解析器依赖于能够识别 StaticImage 源中的组件,并将它们传递给函数 表示这是不可能的。

【讨论】:

以上是关于是否可以在 Gatsby 中使用 styled-components 设置 StaticImage 的样式?的主要内容,如果未能解决你的问题,请参考以下文章

Gatsby.js 和 redux-promise 中间件

在 Gatsby 配置中,如何将元数据对象隔离到它自己的文件中,但仍然能够在 GraphQL 中使用它?

在Gatsby JS中动态生成路由

Gatsby 具有自己查询的可重用组件

Gatsby / Drupal8 解耦:如何在从 Drupal 文件目录中提取的 Gatsby 页面上呈现图像?

ACF 自定义字段 WP GraphQL 突然开始在 Gatsby 中返回 null,即使它曾经可以工作