Nuxt.js returns 错误中的 Apollo asyncData
Apollo asyncData in Nuxt.js returns error
Nuxt.js full static (2.13) 不支持apollo的智能查询,所以我打算改用asyncData。
我有类似的东西:
import homeQuery from '~/apollo/queries/home'
export default {
asyncData(context) {
let client = context.app.apolloProvider.defaultClient;
client
.query({
query: homeQuery
})
.then(({ data }) => {
return { data }
})
}
}
我希望能够在我的模板中使用 {{ data }}
。但是,我收到以下错误:
ERROR [Vue warn]: Property or method "data" is not defined on the
instance but referenced during render. Make sure that this property is
reactive, either in the data option, or for class-based components, by
initializing the property. See:
https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.
我做错了什么?
让它工作改变为:
async asyncData({app}) {
const homeresult = await app.apolloProvider.defaultClient.query({
query: homeQuery
})
return { home: homeresult.data.home }
},
data () {
return {
home: {}
}
}
然而,当使用 nuxt serve
测试静态站点时,这似乎不适用于 default.vue 布局,但仅适用于页面。我发现它使用 fetch():
在布局上工作
async fetch() {
const homeresult = await this.$apolloProvider.defaultClient.query({
query: homeQuery
})
this.home = homeresult.data.home
},
data () {
return {
home: {}
}
}
Nuxt.js full static (2.13) 不支持apollo的智能查询,所以我打算改用asyncData。
我有类似的东西:
import homeQuery from '~/apollo/queries/home'
export default {
asyncData(context) {
let client = context.app.apolloProvider.defaultClient;
client
.query({
query: homeQuery
})
.then(({ data }) => {
return { data }
})
}
}
我希望能够在我的模板中使用 {{ data }}
。但是,我收到以下错误:
ERROR [Vue warn]: Property or method "data" is not defined on the instance but referenced during render. Make sure that this property is reactive, either in the data option, or for class-based components, by initializing the property. See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.
我做错了什么?
让它工作改变为:
async asyncData({app}) {
const homeresult = await app.apolloProvider.defaultClient.query({
query: homeQuery
})
return { home: homeresult.data.home }
},
data () {
return {
home: {}
}
}
然而,当使用 nuxt serve
测试静态站点时,这似乎不适用于 default.vue 布局,但仅适用于页面。我发现它使用 fetch():
async fetch() {
const homeresult = await this.$apolloProvider.defaultClient.query({
query: homeQuery
})
this.home = homeresult.data.home
},
data () {
return {
home: {}
}
}