Vue-meta: у metaInfo нет доступа к вычисляемым свойствам - PullRequest
0 голосов
/ 14 ноября 2018

Я использую vue-meta для динамического изменения моих метатегов. Я хочу изменить это только на некоторых конкретных страницах.

Я использую функцию metaInfo и пытаюсь изменить, например, заголовок. Но данные из моего геттера не определены, поэтому я не могу изменить заголовок в метатегах. Кажется, что функция 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>

1 Ответ

0 голосов
/ 21 ноября 2018

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",
         }
     };
...