【问题标题】:Infinite loop while calling method inside v-for在 v-for 中调用方法时无限循环
【发布时间】:2020-05-03 00:20:04
【问题描述】:

我正在尝试调用一个将数据推送到数组中的方法,但是我插入的数据是多余的,我收到了这个警告:

您可能在组件渲染函数中有无限更新循环。

这是我的代码:

<v-flex xs6 md3 v-for="i in 12" :key="i">
     {{ pushShow(i) }}
</v-flex>
.
.
.
.
methods: {
   pushShow(i){
      this.show.push(i);

    }
}

我将根据数组中的数据显示具有不同行为的卡片,因此数组将类似于:[true, true, false, false, etc]

我该如何解决这个问题?感谢提前

【问题讨论】:

  • 很简单。 永远不要从模板/渲染函数更新您的数据!
  • 这可能是因为每次循环发生重新渲染时都会调用它。如果您愿意,您可以详细描述您想要实现的目标,我们可能会提示您更好的解决方案。

标签: javascript vue.js vuetify.js


【解决方案1】:

您正在模板中调用pushShow(i),而该方法正在执行this.show.push(i),这正在改变您的数据。这将触发另一个渲染,因为 Vue 检测到数据发生了变化,这将调用pushShow(i)再次,以此类推。

您需要确保在渲染期间不会改变任何数据。如果您能提供更多关于您想要达到的目标的详细信息,我们可以为您提供解决问题的方法。

【讨论】:

    猜你喜欢
    • 2021-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-31
    • 1970-01-01
    • 2021-01-20
    • 2011-05-20
    相关资源
    最近更新 更多