结果缺少 allposts 属性

Abh*_*Pal 4 apollo vue.js graphql vuejs2

我是 Django 开发人员,所以第一次接触 vue 和 graphql,我不知道如何准确处理这个错误。

在此输入图像描述

这是我的代码,我的查询可能有问题,


    <template>
      <section>
        <div class="home">
          <h2>hiii</h2>
          <div v-for="i in allposts" :key="i.id">
            <ul>
              <li>
                <h3>hey</h3>
                <strong>{{id}}</strong>:
                <span>{{title}}</span>
              </li>
            </ul>
          </div>
        </div>
      </section>
    </template>

    <script>
    import gql from "graphql-tag";

    const PostQuery = gql`
      query allposts {
        allPosts {
          id
          title
        }
      }
    `;

    export default {
      props: [],
      data() {
        return {
          allposts: []
        };
      },

      apollo: {
        allposts: PostQuery
      }
    };
    </script>
Run Code Online (Sandbox Code Playgroud)

可以看到数据已成功获取

在此输入图像描述

谁能指导我在这里做错了什么?

提前致谢。

Mer*_*ott 6

通过谷歌来到这里。查看文档,其中解释了问题以及如何解决它: https: //apollo.vuejs.org/guide/apollo/queries.html#name-matching

请注意,初学者常见的错误是使用与查询中的字段名称不同的数据名称。

他们给出的例子:

apollo: {
  world: gql`query {
    hello
  }`
}
Run Code Online (Sandbox Code Playgroud)

world并且hello不匹配,所以你会得到一个错误。

该名称必须匹配,或者按照文档的建议,您可以提供一个update函数:

apollo: {
  world: {
    query: gql`query {
      hello
    }`,
    update: data => data.hello
  }
}
Run Code Online (Sandbox Code Playgroud)

或者,重命名 GraphQL 文档中的字段:

apollo: {
  world: gql`query {
    world: hello
  }`
}
Run Code Online (Sandbox Code Playgroud)