vue的v-for只显示第一个元素是什么原因?

新手上路,请多包涵

vue2项目,v-for只显示第一个元素

原本是要遍历一个对象的数组变量flows,类型如Array<Config>,元素用组件Config.vue显示;
发现总是只显示第一个元素,只有固定的几个Config数据组合起来能全部显示出来;
不显示Config.vue,而是直接用<div>{{i}}</div>显示索引,v-for问题依旧;
创建一个新数组变量arr,把数据的索引放进去,问题依旧;
如果在定时循环里对数组变量arr增加元素,{{i}}能显示出来;
不管是怎么生成arr,只要与原本的数据关联,v-for就有问题。

阅读 483
2 个回答

首先确保 flows 是响应式的,再就是v-for循环要加key

我参考你的描述写了demo,没有复现

<template>
  <div>
    <Config
      v-for="(flow, index) in flows"
      :key="flow.id || index"
      :config="flow"
    />
  </div>
</template>

<script>
import Config from './Config.vue';

export default {
  components: { Config },
  data() {
    return {
      flows: [] // 初始空数组
    };
  },
  mounted() {
    setTimeout(() => {
      this.flows = [
        { id: 1, name: 'A' },
        { id: 2, name: 'B' },
        { id: 3, name: 'C' }
      ];
    }, 1000);
  }
};
</script>
推荐问题