我是前端开发人员,所以我第一次接触到vue和graphql,我不知道如何处理这个错误:
Missing getMovies attribute on result {movies: Array(20)}下面是我的代码,我可以在chrome中的dev工具的响应中看到数据被成功获取:
{"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>发布于 2019-06-23 19:43:08
对于每个this issue,您的apollo属性应该有一个匹配的data属性,但在本例中,它们是不匹配的(其中一个被命名为movies和getMovies)。更改一个或另一个:
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。
https://stackoverflow.com/questions/56723183
复制相似问题