NuxtJS-设置已安装的标题/标题吗?

时间:2019-01-18 08:10:08

标签: vue.js nuxt.js nuxt

mounted() {
  // threads is a constant file
  this.thread = threads.find(t => t.id === this.$route.params.id)
},
data() {
  return {
    thread: null
  }
},
head: {
  title: this.thread.title,
  meta: [
    {
      hid: 'description',
      name: 'description',
      content: this.thread.body
    }
  ]
},

基本上,我有一个json“ threads”常量文件,我想使用它的属性来设置head-title / description。

我遇到此错误:
无法读取未定义的属性“线程”

3 个答案:

答案 0 :(得分:1)

head documentation中,键入对象函数

因此,如果您重新格式化代码,则可以这样编写head

head() {
  const thread = threads.find(t => t.id === this.$route.params.id)

  return {
    title: thread ? thread.title : '',
    meta: [
      {
        hid: 'description',
        name: 'description',
        content: thread ? thread.body : ''
      }
    ]
  }
},

答案 1 :(得分:0)

您应该在数据方法中定义thread

data () {
  return {
    thread: {
      body: '',
    }
  }
}

此外,应该将head定义为方法,而不是属性。

head () {
  return {
    meta: [
      {
        hid: 'description',
        name: 'description',
        content: this.thread.body
      }
    ]
  }
}

答案 2 :(得分:0)

aznable显然您必须从此处删除null

thread: null => thread: ""

并将其插入异步方法中

   async getId() {
    this.thread = await threads.find(t => t.id === this.$route.params.id)
   }

最好!