Vue: [2.0.0-rc.1] v-forおよびref:$ refはもう反応しませんか?

作成日 2016年08月17日  ·  3コメント  ·  ソース: vuejs/vue

2.0.0-rc.1では、次のような構造

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

はもう機能していません( itemsでコンポーネント数が変更されても、カウントは初期値のままです)。 v1では、$ refの配列は事後的に更新されます。

これがバグなのか機能なのかはわかりませんが、#2873では言及されていないようです。

最も参考になるコメント

@ yyx990803これは、 computedプロパティでthis.$refs.*を使用すると、v2でも機能しなくなることを意味しますか、それともテンプレートでの使用だけですか? カスタムイベントでこれらすべてを解決する必要がありますか?

私は現在、このように子から親に検証結果を渡します。

全てのコメント3件

これは意図されたものです-理由は、レンダリングプロセス自体の間に$refsが登録/更新されるようになったためです。 テンプレートで$refsを使用することはお勧めしません。これは、JavaScriptでのプログラムによるアクセスのみを目的としているためです。

これを含めるために#2873を更新しました。

@ yyx990803これは、 computedプロパティでthis.$refs.*を使用すると、v2でも機能しなくなることを意味しますか、それともテンプレートでの使用だけですか? カスタムイベントでこれらすべてを解決する必要がありますか?

私は現在、このように子から親に検証結果を渡します。

this.$forceUpdate()setTimeoutを使用して、データを更新するときにビューを再レンダリングし、 $refsがリアクティブに更新されないことを確認できます。

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

setTimeoutを使用して、データがvueタスクキューの内容で提供されていることを確認します

このページは役に立ちましたか?
0 / 5 - 0 評価