Vue: [2.0.0-rc.1] v-for 和 ref:$refs 不再响应?

创建于 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 中,$refs 数组会被动更新。

我不确定这是一个错误还是一个功能,但#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 等级

相关问题

aviggngyv picture aviggngyv  ·  3评论

paceband picture paceband  ·  3评论

robertleeplummerjr picture robertleeplummerjr  ·  3评论

hiendv picture hiendv  ·  3评论

seemsindie picture seemsindie  ·  3评论