我正在使用vue-meta动态地更改我的元标记。我只想在一些特定的页面上更改它。
我正在使用metaInfo函数,并试图更改,例如,一个标题。但是来自getter的数据还没有定义,这就是为什么我不能在元标记中更改标题的原因。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>发布于 2018-11-21 13:10:37
vue-meta只是从您的metaInfo函数(根据插件源代码)创建计算属性,所以我假设您的loadViewPage操作异步地填充了data对象,而您的问题只是转换为空检查问题。
因此,您应该在使用数据属性之前检查数据,并且当数据被加载时,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",
}
};https://stackoverflow.com/questions/53295519
复制相似问题