Vue.js 如何在asyncData nuxtjs中获取上下文和环境变量
我正在我的nuxt应用程序中创建一个博客,从contentful中提取数据。我一直在关注这个问题,现在我可以很好地得到它,但我似乎无法同时获得我设置的从asyncData参数返回的上下文和环境变量 我创建了一个json文件,如下所示 .contentful.json 然后在我的nuxt.config.js中 现在基本上在我的组件中,我一直在尝试这样做Vue.js 如何在asyncData nuxtjs中获取上下文和环境变量,vue.js,vuejs2,nuxt.js,Vue.js,Vuejs2,Nuxt.js,我正在我的nuxt应用程序中创建一个博客,从contentful中提取数据。我一直在关注这个问题,现在我可以很好地得到它,但我似乎无法同时获得我设置的从asyncData参数返回的上下文和环境变量 我创建了一个json文件,如下所示 .contentful.json 然后在我的nuxt.config.js中 现在基本上在我的组件中,我一直在尝试这样做 asyncData(context, {env}) { return Promise.all([ client.getEn
asyncData(context, {env}) {
return Promise.all([
client.getEntries({
'content_type': env.CTF_BLOG_POST_ITEM,
order: '-sys.createdAt'
})
]).then(([posts]) => {
console.log(context);
return {
posts: posts.items
}
})
},
但是当我运行这个程序时,如果我从参数中获取上下文,我就无法读取未定义的属性CTF_BLOG_POST_项,反之亦然,如果我获取{env},我就获取上下文
我怎样才能两者都得到
谢谢的第一个主要参数是。env是上下文对象的属性。您可以作为context.env访问它,而无需使用。您的示例可以按照以下方式重写,而无需使用对象重组分配:
asyncData(context) {
return Promise.all([
client.getEntries({
'content_type': context.env.CTF_BLOG_POST_ITEM,
order: '-sys.createdAt'
})
]).then(([posts]) => {
console.log(context);
console.log(context.env);
return {
posts: posts.items
}
})
},
签名asyncDatacontext,{env}{不正确,因为您正在添加第二个参数,{env},该参数不以任何方式引用上述上下文对象。如果您只需要上下文中的env,则可以使用以下方式提取此属性,正如您在删除第一个参数时所述:
asyncData({env}) {
return Promise.all([
client.getEntries({
'content_type': context.env.CTF_BLOG_POST_ITEM,
order: '-sys.createdAt'
})
]).then(([posts]) => {
console.log(context);
console.log(context.env);
return {
posts: posts.items
}
})
},
如果需要其他上下文对象属性,请使用object destructuring assignment.Tt如下所示:
asyncData({env, params, req, res}) {
否则,只需将context作为第一个/主参数传递并重新构造,即可访问context.env、context.params等属性
希望这会有所帮助!此节点包肯定会有所帮助
asyncData({env}) {
return Promise.all([
client.getEntries({
'content_type': context.env.CTF_BLOG_POST_ITEM,
order: '-sys.createdAt'
})
]).then(([posts]) => {
console.log(context);
console.log(context.env);
return {
posts: posts.items
}
})
},
asyncData({env, params, req, res}) {