花了几个小时在网上梳理答案并开始感觉到这是不可能的。
我正在使用gatsby-plugin-image
带有 V3 gatsby 站点的新版本,getImageData()
在构建时查询中使用没有问题(通过import {graphql} from 'gatsby'
)
我现在有一个使用 Apollo ( ) 运行的客户端gatsby-plugin-apollo
查询,但我能得到的只是给定内容资产的 url,以及其他一些没有多大用处的信息(请参阅下面的第一个链接以供参考)。我需要运行这个查询客户端,因为它依赖于本地存储。
有谁知道从客户端查询时从 Contentful Delivery API 获取用于组件的图像数据的方法?只有 url,我的图像看起来真的很糟糕,我必须做更多的编码来解释不同的图像源,因为这是一个可重用的组件。
似乎我的插件列表,即gatsby-source-contentful
在使用 Apollo 客户端时没有任何影响,因此数据不会以任何方式转换,使其可用于 gatsby-plugin-image
一些参考链接:
我的客户端查询 provider.logo 是我想使用的图像:
import { gql, useLazyQuery } from '@apollo/client'
const GET_SAVED_RESOURCES = gql`
query($bookmarks: [String], $locale: String!) {
resourcePageCollection(
locale: $locale,
where: {
sys: {
id_in: $bookmarks
}
}
) {
items {
sys { id }
title
slug
tags
provider {
... on Provider {
name
logo {
title
url(transform: { height: 60 })
}
}
}
}
}
}
`