如何修复“结果中缺少产品属性”

Posted

技术标签:

【中文标题】如何修复“结果中缺少产品属性”【英文标题】:How to fix "Missing product attribute on result" 【发布时间】:2020-02-12 11:55:59 【问题描述】:

我正在尝试使用导入的组件映射 graphql 查询。数据已正确连接,但未通过。我收到错误Missing product attribute on result

我缩小了问题在于数据传递的范围。

这是我所拥有的:

<template>
  <div class="CoffeeSection">
    <h2>Coffees</h2>
    <div class="Cards">
      <CoffeeCard
        v-for="product of products"
        :key="product.id"
        :title="product.title"
        :slug="product.slug"
        :image="product.image.handle"
      ></CoffeeCard>
    </div>
  </div>
</template>

我是否在此处适当地映射查询?

<script>
import CoffeeCard from "./CoffeeCard";

import gql from "graphql-tag";

const products = gql`
  query 
    products 
      title
      image 
        url
        handle
      
      description
      price
      slug
      category 
        name
        description
        products 
          title
          image 
            url
            handle
          
        
      
    
  
`;

export default 
  name: "Coffees",
  data: () => (
    loading: 0,
    products: []
  ),
  apollo: 
    $loadingKey: "loading",
    product: 
      query: products
    
  ,
  components: 
    CoffeeCard
  
;
</script>

我收到错误 Missing product attribute on result

【问题讨论】:

【参考方案1】:

通过在apollo 下添加名称不以$ 开头的属性来添加vue-apollo 中的智能查询。此属性的名称应与您在data 中初始化以存储结果的值以及您正在查询的根字段的名称(即products)匹配。但是,看起来您将智能查询命名为 product 而不是 products,这会导致您看到的错误。

您可以查看docs 了解更多详细信息和示例。

【讨论】:

嘿丹尼尔!感谢您的回复。我之前尝试过,但在子组件内部遇到了另一个错误。现在有了你的答案,相信这是正确的方法并发现了错误。谢谢!

以上是关于如何修复“结果中缺少产品属性”的主要内容,如果未能解决你的问题,请参考以下文章

如何修复“无法读取未定义的属性‘标题’”

如何将错误修复分支合并到主分支?

商城产品如何应对多个客户不同的需求修改并发布对应客户的文件

云栖直播:阿里热修复产品HotFix2.0升级详解

html h3隐藏在产品描述修复上

sql Magento产品404错误修复