graphql查询未呈现到页面

Posted

技术标签:

【中文标题】graphql查询未呈现到页面【英文标题】:graphql query not rendering to page 【发布时间】:2021-10-13 10:16:30 【问题描述】:

    console.log(data.allShopifyProductVariant.nodes[0].product.title)

    return (
        <div>
            <div>
                data.allShopifyProductVariant.nodes.map(node => 
                    <div>
                        node.product.title
                    </div>
                
                )
            </div>
        </div>
    )



export const query = graphql`
    query CollectionQuery 
        allShopifyProductVariant(filter: product: productType: in: "20 lb. Plotter Paper") 
            nodes 
              compareAtPrice
              sku
              price
              product 
                title
                images 
                  gatsbyImageData(width: 150)
                
                productType
              
            
          
    `

export default Collection;

期待这个函数返回产品标题,由于某种原因它什么也不返回。我尝试过使用危险设置的 innerhtml ,但没有任何反应,没有错误。我可以 console.log node.product.title 它返回我想要显示的内容,但由于某种原因它没有呈现到 div。任何帮助表示赞赏,在此先感谢:D

【问题讨论】:

【参考方案1】:

您缺少return 声明:

return (
    <div>
        <div>
            data.allShopifyProductVariant.nodes.map(node => 
                return <div>
                    node.product.title
                </div>
            
            )
        </div>
    </div>
)

或者使用隐含的return

return (
    <div>
        <div>
            data.allShopifyProductVariant.nodes.map(node => (
               <div>
                    node.product.title
                </div>
            
            ))
        </div>
    </div>
)

【讨论】:

以上是关于graphql查询未呈现到页面的主要内容,如果未能解决你的问题,请参考以下文章

如何修复“未捕获的错误:查询不再有模拟响应”

在 GatsbyJS/GraphQL 中组合页面查询

如何将 GraphQL 查询中的数据传递到以编程方式生成的页面上?

使用 Kentico Kontent 的对象数组未按 CMS 中设置的顺序呈现

AWSAppSyncClient 未检测到 graphql 查询

Gatsby & GraphQL - 从查询文件中呈现下载链接