Javascript Vue meta:metaInfo不';我没有访问计算属性的权限
我正在使用vue meta动态更改我的meta标记。我只想在某些特定页面上更改它 我正在使用metaInfo函数并尝试更改,例如,标题。但是我的getter中的数据是未定义的,这就是为什么我不能更改meta标记中的标题。看起来metaInfo函数试图在组件实际拥有数据之前访问数据 以下是我在组件中的代码:Javascript Vue meta:metaInfo不';我没有访问计算属性的权限,javascript,vue.js,vue-meta,Javascript,Vue.js,Vue Meta,我正在使用vue meta动态更改我的meta标记。我只想在某些特定页面上更改它 我正在使用metaInfo函数并尝试更改,例如,标题。但是我的getter中的数据是未定义的,这就是为什么我不能更改meta标记中的标题。看起来metaInfo函数试图在组件实际拥有数据之前访问数据 以下是我在组件中的代码: <template> ... </template> <script> export default { metaInfo() {
<template>
...
</template>
<script>
export default {
metaInfo() {
return {
title: this.getViewPage.data.meta.title, // data is undefined
};
},
created() {
this.loadViewPage();
},
computed: {
...mapGetters(['getViewPage']),
},
methods: {
...mapActions(['loadViewPage']),
};
</script>
...
导出默认值{
metaInfo(){
返回{
title:this.getViewPage.data.meta.title,//数据未定义
};
},
创建(){
这个.loadViewPage();
},
计算:{
…映射器(['getViewPage']),
},
方法:{
…映射操作(['loadViewPage']),
};
vue meta
只是从metaInfo
函数(根据插件源代码)创建计算属性,因此我假设您的loadViewPage
操作异步填充数据
对象,您的问题只是转换为空检查问题
所以,您应该在使用数据的属性之前检查数据,并且在加载数据时,metaInfo也会更新对象:
metaInfo() {
// don't know your return object structure,
// maybe you should check whole this.getViewPage
let data = this.getViewPage.data;
return {
title: data ? data.meta.title : "some placeholder title",
}
};
非常感谢!这个解决方案很有效。我还检查了我的getter并创建了一个新的getter,以便将元数据保存到另一个存储中。