结果Vue GraphQL上缺少电影属性

Posted

技术标签:

【中文标题】结果Vue GraphQL上缺少电影属性【英文标题】:Missing movies attribute on result Vue GraphQL 【发布时间】:2019-11-05 11:17:21 【问题描述】:

我是前端开发人员,所以第一次接触 vue 和 graphql,我不知道该如何处理这个错误:

Missing getMovies attribute on result movies: Array(20)

这是我的代码,我可以在 chrome 的开发工具的响应中看到数据已成功获取:

"data":"movies":["__typename":"Movie","id":11,"overview":

代码如下:

<template>
  <div class="hello">
    <ul>
      <li v-for="movie in movies" :key="movie.id">movie.title</li>
    </ul>
  </div>
</template>

<script>
import gql from 'graphql-tag'
export default 
  name: 'HelloWorld',
  data()
    return 
      movies: []
    
  ,
  apollo: 
    getMovies: 
      query: gql`
        query StarWars 
          movies(query: "Star Wars") 
            title
            overview
            poster_path
            id
          
              
      `,
      result(data)
        this.movies = data.movies
      
    
  ,
  props: 
    msg: String
  

</script>

【问题讨论】:

【参考方案1】:

根据this issue,您的apollo 属性应该有一个匹配的data 属性,但在这种情况下它们不匹配(一个名为moviesgetMovies)。改变一个或另一个:

export default 
  name: 'HelloWorld',
  data()
    return 
      movies: []
    
  ,
  apollo: 
    movies: 
      query: gql`
        query StarWars 
          movies(query: "Star Wars") 
            title
            overview
            poster_path
            id
          
              
      `
    
  ,
  props: 
    msg: String
  

没有必要在result 中自己设置data

【讨论】:

以上是关于结果Vue GraphQL上缺少电影属性的主要内容,如果未能解决你的问题,请参考以下文章

text Apollo GraphQL Vue.js错误结果缺少属性

结果中缺少 allposts 属性

GraphQL:接受缺少请求字段的查询响应?

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

FastAPI小项目实战:电影列表(Vue3 + FastAPI)

GraphQL/Graph.cool 查询过滤嵌套关系