【发布时间】:2021-03-09 13:17:20
【问题描述】:
我是盖茨比的新手。 所以,我想在 WordPress 管理中定义我的网站徽标。这是我的做法:
`import React from 'react';
import {graphql, StaticQuery} from 'gatsby';
import styled from 'styled-components';
import Img from 'gatsby-image';
const SiteInfo = () => (
<StaticQuery query={graphql`
{
file(name: {eq: "logo"}) {
relativePath
childImageSharp {
fluid {
originalImg
}
}
}
site {
siteMetadata {
title
}
}
allFile(filter: {name: {eq: "logo"}}) {
edges {
node {
name
url
relativePath
}
}
}
allWordpressWpMedia(filter: {title: {eq: "logo"}}) {
edges {
node {
title
source_url
}
}
}
}
`
} render = {data => (
<BasicInfoWrapper>
<Sitelogo>
<Img src={data.allWordpressWpMedia.edges.node.source_url} alt="Logo" />
</Sitelogo>
<SiteTitle>
{/*data.site.siteMetadata?.title || `Title`*/}
</SiteTitle>
</BasicInfoWrapper>
)}/>
);
export default SiteInfo;
`
不幸的是它不起作用,我收到以下错误:TypeError:
`can't access property "source_url", data.allWordpressWpMedia.edges.node is undefined`
所以我求助于你,这样我才能成功
谢谢!
【问题讨论】:
-
您是否在 GraphQL 游乐场 (
localhost:8000/___graphql) 中测试过您的查询? -
是的,效果很好。结果如下: { "data": { "allWordpressWpMedia": { "edges": [ { "node": { "title": "logo", "source_url": "localhost/hellopomelo/wp-content/uploads/2020/11/logo.png" } } ] } }, “扩展”:{} }
标签: javascript graphql gatsby gatsby-image gatsby-plugin