useStaticQuery 的 Gatsby 结果未定义
Gatsby result from useStaticQuery is undefined
我有一个变量存储 useStaticQuery
调用的结果,但是当我 console.log
它时,它是未定义的。该查询在 GraphiQL 中运行良好,那么为什么它不能与 useStaticQuery
一起使用?
const {backgroundImages} = useStaticQuery(graphql`
query {
allFile(
filter: {extension: {regex: "/(png)/"}, relativeDirectory: {eq: "slider"}}
) {
edges {
node {
base
childImageSharp {
gatsbyImageData(width: 10, quality: 10, webpOptions: {quality: 70})
}
}
}
}
}
`)
console.log(backgroundImages) // undefined
问题是因为您正在解构结果并要求查询结果中不存在的键 backgroundImages
。
此查询会return 类似于以下内容的结果:
{
"data": {
"allFile": {
"edges": [
"node": .....
]
}
}
}
也就是说你不能通过解构({...}
)访问对象backgroundImages
,但是你可以访问data
。如果你尝试:
const {data} = useStaticQuery(graphql`
query {
...
}
`)
console.log(data)
您应该能够看到查询日志。
我有一个变量存储 useStaticQuery
调用的结果,但是当我 console.log
它时,它是未定义的。该查询在 GraphiQL 中运行良好,那么为什么它不能与 useStaticQuery
一起使用?
const {backgroundImages} = useStaticQuery(graphql`
query {
allFile(
filter: {extension: {regex: "/(png)/"}, relativeDirectory: {eq: "slider"}}
) {
edges {
node {
base
childImageSharp {
gatsbyImageData(width: 10, quality: 10, webpOptions: {quality: 70})
}
}
}
}
}
`)
console.log(backgroundImages) // undefined
问题是因为您正在解构结果并要求查询结果中不存在的键 backgroundImages
。
此查询会return 类似于以下内容的结果:
{
"data": {
"allFile": {
"edges": [
"node": .....
]
}
}
}
也就是说你不能通过解构({...}
)访问对象backgroundImages
,但是你可以访问data
。如果你尝试:
const {data} = useStaticQuery(graphql`
query {
...
}
`)
console.log(data)
您应该能够看到查询日志。