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
    }
  ]
},

Grundsätzlich habe ich eine konstante Datei mit json "Threads" und möchte deren Eigenschaften verwenden, um den Kopf - Titel / Beschreibung festzulegen.

Ich erhalte diesen Fehler:
Die Eigenschaft 'thread' von undefined kann nicht gelesen werden

0
chart.aznable 18 Jän. 2019 im 11:10

3 Antworten

Beste Antwort

In der Kopfdokumentation lautet der Typ Objekt oder Funktion

Wenn Sie also Ihren Code ein wenig neu formatieren, können Sie head so schreiben

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 : ''
      }
    ]
  }
},
3
ljubadr 18 Jän. 2019 im 08:25

Aznable Anscheinend müssen Sie null von hier entfernen

thread: null => thread: ""

Und fügen Sie dies in asynchrone Methoden ein

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

Beste !

0
Birante 18 Jän. 2019 im 08:24

Sie sollten thread in der Datenmethode definieren

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

Außerdem sollte der Kopf als Methode definiert werden, nicht als Eigenschaft.

head () {
  return {
    meta: [
      {
        hid: 'description',
        name: 'description',
        content: this.thread.body
      }
    ]
  }
}
0
Cong Nguyen 18 Jän. 2019 im 08:28