Nuxt.js 本地网站页面仅在登陆时从 Strapi 加载数据,而不是通过 <nuxt-link> 导航
Nuxt.js local site pages load data from Strapi only on landing, not navigating via <nuxt-link>
我正在使用来自 Strapi 的数据填充我的 Nuxt.js 站点。
我的导航采用 default.vue 布局,简单如:
<li v-for="page in pages" :key="page.id">
<nuxt-link :to="page.slug"></nuxt-link>
</li>
URL 正确呈现并尝试打开正确的页面,但是页面无法加载,因为它无法从 Strapi 加载数据,例如:
Cannot read property 'title' of undefined
相反,如果我直接登陆页面或只是刷新它,所有内容都会正确加载。
因此,例如,登陆 localhost:3000/about 可以正常工作,但导航到该页面则不行。
我想我首先缺少有关数据加载方式的信息。
我正在通过 Apollo 查询 default.vue 中的所有页面以获取导航
apollo: {
pages: {
query: pagesQuery
}
}
并且只有index.vue内的特定页面或动态页面_slug.vue查询单个页面:
apollo: {
pages: {
query: pageQuery,
variables () {
return {
"slug": this.$route.params.slug
}
}
}
希望已经清楚了,在此先感谢您的帮助!
找到 this similar question 后,看起来解决方案是添加
v-if="pages[0] != null"
在主元素上,并且
data() {
return {
pages: []
}
}
这似乎可行,但不确定是否有其他(更好的?)方法来处理它,欢迎随时回复!
谢谢
我正在使用来自 Strapi 的数据填充我的 Nuxt.js 站点。
我的导航采用 default.vue 布局,简单如:
<li v-for="page in pages" :key="page.id">
<nuxt-link :to="page.slug"></nuxt-link>
</li>
URL 正确呈现并尝试打开正确的页面,但是页面无法加载,因为它无法从 Strapi 加载数据,例如:
Cannot read property 'title' of undefined
相反,如果我直接登陆页面或只是刷新它,所有内容都会正确加载。
因此,例如,登陆 localhost:3000/about 可以正常工作,但导航到该页面则不行。
我想我首先缺少有关数据加载方式的信息。
我正在通过 Apollo 查询 default.vue 中的所有页面以获取导航
apollo: {
pages: {
query: pagesQuery
}
}
并且只有index.vue内的特定页面或动态页面_slug.vue查询单个页面:
apollo: {
pages: {
query: pageQuery,
variables () {
return {
"slug": this.$route.params.slug
}
}
}
希望已经清楚了,在此先感谢您的帮助!
找到 this similar question 后,看起来解决方案是添加
v-if="pages[0] != null"
在主元素上,并且
data() {
return {
pages: []
}
}
这似乎可行,但不确定是否有其他(更好的?)方法来处理它,欢迎随时回复!
谢谢