Vue: [2.0.0-rc.1] v-for und ref: $refs nicht mehr reaktiv?

Erstellt am 17. Aug. 2016  ·  3Kommentare  ·  Quelle: vuejs/vue

In 2.0.0-rc.1 ein Konstrukt wie

<p>Count: {{$refs.components && $refs.components.length}}</p>
<sub-component v-for="item in items" ref="components">

funktioniert nicht mehr (Zählung bleibt auf dem Anfangswert, auch wenn items und damit die Komponentenanzahl geändert wird). In v1 wurden Arrays von $refs reaktiv aktualisiert.

Ich bin mir nicht sicher, ob dies ein Fehler oder ein Feature ist, aber #2873 scheint es nicht zu erwähnen.

Hilfreichster Kommentar

@yyx990803 bedeutet dies, dass die Verwendung von this.$refs.* in computed Eigenschaften auch in v2 nicht mehr funktioniert oder nur in Vorlagen verwendet wird? Muss ich das alles mit benutzerdefinierten Ereignissen lösen?

Ich gebe derzeit Validierungsergebnisse von Kindern auf diese Weise an die Eltern weiter.

Alle 3 Kommentare

Dies ist beabsichtigt - der Grund dafür ist, dass $refs jetzt während des Rendervorgangs selbst registriert/aktualisiert werden. Es wird nicht empfohlen, sich in Vorlagen auf $refs zu verlassen, da diese nur für den programmatischen Zugriff in JavaScript gedacht sind.

Ich habe #2873 aktualisiert, um dies aufzunehmen.

@yyx990803 bedeutet dies, dass die Verwendung von this.$refs.* in computed Eigenschaften auch in v2 nicht mehr funktioniert oder nur in Vorlagen verwendet wird? Muss ich das alles mit benutzerdefinierten Ereignissen lösen?

Ich gebe derzeit Validierungsergebnisse von Kindern auf diese Weise an die Eltern weiter.

Sie können this.$forceUpdate() und setTimeout , um die Ansicht neu zu rendern, wenn Sie die Daten aktualisieren und feststellen, dass $refs nicht reaktiv aktualisiert wird.

this.fetchSomeShit()
.then((data) => {
  this.data = data
  setTimeout(() => {
    this.$forceUpdate()
  })
})

Verwenden Sie setTimeout um sicherzustellen, dass die Daten in der Vue-Aufgabenwarteschlange angegeben wurden

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

bdedardel picture bdedardel  ·  3Kommentare

robertleeplummerjr picture robertleeplummerjr  ·  3Kommentare

hiendv picture hiendv  ·  3Kommentare

fergaldoyle picture fergaldoyle  ·  3Kommentare

paulpflug picture paulpflug  ·  3Kommentare