Vue无限循环......在方法中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue无限循环......在方法中相关的知识,希望对你有一定的参考价值。

我收到这个警告[Vue warn]: You may have an infinite update loop in a component render function.,我想我知道它为什么会发生。

我的用例:我有一个循环,我将一个带索引的对象传递给一个vue方法。由于计算机不能有参数,所以我不能使用它。剩下的选择是方法。

我想在循环达到奇数后一周将日期增加。只有1和2是例外。

这是我一直试图使用的代码

getDate(date, i){
      var currentDate=date.startingDate

      var res=currentDate
      if(i>2){
        // change the date 
         if(i%2==0){
            //use previous dates 
            res=date.startingDate
         }else{
            // increase the date by one week from the last week 
            var currDate = new Date(currentDate)
            var d=currDate.setDate(currDate.getDate() + 7);
            var d=new Date(d)
            var newDate=d.toISOString()
            var dateArr=newDate.split("T")
            var res=dateArr[0]
            console.log('ok')

            date.startingDate=res // this line is the problem and causes the infinite loop problem.  

         }
      }

      return res

  }

这里date.startingDate总是固定的日期。

样本输入

date.startingDate='2018-05-11'

所以当qazxsw poi输出是qazxsw poi

当qazxsw poi日期应该增加一周,所以预期的产量是qazxsw poi

问题是i=1, and 2 (i always starts from 1)我无法将日期重置为此日期。但我必须将其重置为增加的新日期才能在date.startingDate='2018-05-11'时添加新日期。

以其他方式提出任何建议的解决方案,或者可以通过不同方式改进此代码?任何帮助将受到高度赞赏。

非常感谢您的时间。

编辑

i=3,4

答案

好吧,似乎无法避免这个问题。所以我改变了方法。我没有在填充厄运时更新日期,相反,我使用了vuex存储和getter。从getter返回时,我在那里更改了值,一旦所有日期更改完成,我只返回数组。它工作得很好。这是我的代码

当我添加动态条件时,这个代码在逻辑方面有点改变。但概念是一样的。

2018-05-17

希望这种方法有助于他人。

以上是关于Vue无限循环......在方法中的主要内容,如果未能解决你的问题,请参考以下文章

vue(element)中代码高亮插件全面对比

C中代码的优化

Java中代码优化的30个小技巧

如何可视化vue无限更新循环的无限循环

dopar中代码的流程优化

关于Java中异常的叙述正确的是:( ) A.异常是程序编写过程中代码的语法错误