【问题标题】:Array elements are shown twice数组元素显示两次
【发布时间】:2020-10-26 21:48:35
【问题描述】:

我有这张带有双列样式的卡片,它应该在左侧显示数组的第一个元素,在右侧显示第二个元素,在第一个下方显示左侧第三个元素,依此类推......像这样:

所以对于上面的例子,数组是这样的: [{"Application": "BP 3ALT"}, {"Status:", "Issued permit"}, {"Address:", "4367"}, ... ]

我在 Vuejs 中编写了这段代码,它接受数组作为道具,但它在网站上显示每个元素两次。就像如果我通过 [{"Application:", "128 palmstreet"}] 你会在第一行看到它两次:

即使它只应在左侧出现一次。这是我的代码:

columnCard.vue:

    <div class="container">
      <div class="row" v-for="objData in data" :key="objData.label">
        <div class="line col-2">{{objData.label}}</div>
        <div class="line col-3 ">{{objData.value}}</div>
        <div class="vl"></div>
        <div class="line col-2 ">{{objData.label}}</div>
        <div class="line col-3 ">{{objData.value}}</div>
      </div>
    </div>

    props: {
      data: {
        type: Array
      }
    }

而传入的数组是:[{'label': 'Application:', 'value': '128 palmstreet'}]

更新: 如何修复它,使数组中的每个对象只显示一次,同时保留双列的样式?在&lt;div class="vl"&gt;&lt;/div&gt; 弄乱样式后删除两个div,它会删除右列。我们想保留它。

【问题讨论】:

  • 您在 html 中有两次 objData.labelobjData.value .. 您还期待什么其他输出?
  • 确实如此。但我需要这样的样式(双列)输出就是你在第一张图片上看到的。我们只想显示标签和值。

标签: javascript html arrays vue.js


【解决方案1】:

您在模板中重复了元素。这样就不会重复了

  <div class="container">
      <div class="row" v-for="objData in data" :key="objData.label">
        <div class="line col-2">{{objData.label}}</div>
        <div class="line col-3 ">{{objData.value}}</div>
        <div class="vl"></div>

      </div>
    </div>

    props: {
      data: {
        type: Array
      }
    }

【讨论】:

  • 如果我们这样做,它不会在右列显示输出。我们希望看到左边的第一个元素,右边的第二个,左边第一个元素的底部的第三个,依此类推..
  • 你的问题是;为什么他们是两次。我的答案就是解决这个问题。
猜你喜欢
  • 2012-09-23
  • 1970-01-01
  • 2012-08-04
  • 2015-03-07
  • 1970-01-01
  • 1970-01-01
  • 2019-10-06
  • 2023-02-25
  • 1970-01-01
相关资源
最近更新 更多