javascript - 如何清空以下数组而不导致无限查看此 Vue watch 内?

标签 javascript vue.js infinite-loop

我正在观察一系列领域:

fields: {
  handler (fields) {
    Object.entries(fields).forEach(([key, value]) => {
      const field = fields[key]
      // field.errors = [] this will trigger an infinite look
      if (!field.validation) return
      const isRequired = field.validation.isRequired && !field.value
      if (isRequired) {
        field.errors[field.errors.length] = {
          errorType: 'isRequired',
          message: 'This field is required.'
        }
      }
    })
  },
  deep: true
}

现在我想在代码运行之前重置field.errors...问题是更改字段会更改字段,因此会导致无限循环。

最佳答案

在将错误数组设置为新的空数组之前,您可以检查错误数组是否已为空

if (Array.isArray(field.errors) && field.errors.length) 
    field.errors = []

关于javascript - 如何清空以下数组而不导致无限查看此 Vue watch 内?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51131518/

相关文章:

javascript - javascript 和 css 的压缩器

intellij-idea - 在不影响 vue 模板的情况下,使用 intellij 从 HTML 中的标签周围更改 'less than' 和 'greater than' 的颜色

html - 使用 "dynamic width"时如何将转换应用于 v-dialog ,这意味着宽度 ="unset"?

python - wxpython TextCtrl和无限循环的问题

c - fread 不会更改函数中的指针值(导致带有 feof 的无限循环)-C

java - 初学者 : Number Guessing Game

javascript - 类型-GraphQL : Allow document owner and admin/moderator access with the @Authorized() decorator

javascript - JQuery DatePicker 链接到月份

javascript - JQuery - 表单提交 - 多次?

node.js - Vue/Webpack + Express (MEVN) : URLs for API calls, 开发与生产