如何删除 \[vue/no-use-v-if-with-v-for\] 警告?

新手上路,请多包涵

所以我有一个支持 v-for 和 v-if 的 div 元素,它工作正常并且输出正确,但是这个警告真的让我很烦:

[vue/no-use-v-if-with-v-for] ‘v-for’ 指令中的 ‘prit_type_ids’ 变量应该替换为返回过滤数组的计算属性。您不应将“v-for”与“v-if”混合使用。

有没有办法删除此警告?我已经在我的 .eslintrc.js 中添加了这段代码

来源: https ://github.com/vuejs/eslint-plugin-vue/blob/master/docs/rules/no-use-v-if-with-v-for.md#wrench-options

我把它放在正确的地方了吗?或不。

 rules: {
// allow debugger during development
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
"vue/no-use-v-if-with-v-for": ["error", {
    "allowUsingIterationVar": true
  }],
}

所以基本上,我有一个嵌套循环,其中第一个循环中的特定元素正在比较第二个循环中的值,如果匹配,它将把第二个循环中的数据放在第一个循环的相应列中.

这是代码:

     <div class="columns is-mobile" v-if="!loading">
      <div class="column" v-for="x in firstSection" v-bind:key="x[0]">
        <div class="box">
          <article class="media">
            <div class="media-content">
              <div class="content">
                <div class="tags has-addons">
                  <span class="tag is-medium">Version number: </span>
                  <span class="tag is-dark is-medium">{{ x[0] }}</span>
                </div>
                <div class="tags has-addons">
                  <span class="tag is-medium">Version Effective Date: </span>
                  <span class="tag is-dark is-medium">{{ x[1] }} </span>
                </div>
                <div class="tags has-addons">
                  <span class="tag is-medium">Version Expiration Date: </span>
                  <span class="tag is-dark is-medium">{{ x[2] }}</span>
                </div>
              </div>
              <hr>
               <a class="button is-dark  is-fullwidth is-medium" @click="showPackages" v-html="xPackageButton"> </a>
            </div>
          </article>
        </div>
        <div v-if="xSeen">
          <div class="notification" v-for="(pack, index) in packages" v-bind:key="index" v-if="pack[0] == x[0]">
              <p class="is-size-7"> <strong> {{ pack[2] }} </strong> </p>
              <p class="is-size-7">  {{ pack[1] }} </p>
              <hr>
              <p class="is-size-7">  {{ pack[3] }} </p>
              <p class="is-size-7">  {{ pack[4] }} </p>

              <div v-for="(param, index) in prit_type_ids" v-bind:key="index" v-if="param[1] == pack[4]">
              <p class="is-size-7">  {{ param[0] }}  </p>
              </div>
          </div>
        </div>
      </div>
    </div>

代码工作正常,但问题是,即使我已经在规则中添加了一个条目,我仍然收到警告。

我只想删除警告。

多谢你们。

原文由 Jude Medina 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 732
2 个回答

您需要关闭 eslintrc 配置选项中的规则,如下所示:

 rules: {
    // allow debugger during development
    'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
    "vue/no-use-v-if-with-v-for": "off"
}

参考: https ://eslint.org/docs/user-guide/configuring#configuring-rules

我了解到您按照说明设置了 "allowUsingIterationVar": true ,但它不起作用。这是因为您已经在数组文字语法中指定了 "error" ,这按照 eslint 配置指南打开了规则。正如上面链接的参考页面中给出的,数组中的第一项始终指示规则严重性。

在上面的示例配置中,我使用一个简单的字符串来关闭规则,如下所示:

 "vue/no-use-v-if-with-v-for": "off"

原文由 Mani 发布,翻译遵循 CC BY-SA 4.0 许可协议

您可以在 <template> 中禁用选择性 eslint 规则,方法是添加如下 HTML 注释:

 <!-- eslint-disable vue/no-use-v-if-with-v-for,vue/no-confusing-v-for-v-if -->

您也可以使用:

 <!-- eslint-disable -->

... code that breaks linting ...

<!-- eslint-enable -->

原文由 Manish 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题