Vue使用v-for遍历嵌套的API响应数组

问题描述

我开始学习vue,尝试进行一些练习,但陷入了for循环中。

我正在调用为更好地理解数据处理而开发的api。呼叫的输出是:

[
    {
        "_id": "ID1","customerID": "ASDF","purchases": [
            {
                "laptop": "DELL","price": "500"
            },{
                "monitor": "DELL","price": "200"
            }
        ]
    },{
        "_id": "ID2","customerID": "FDSA","purchases": [
            {
                "laptop": "MacBook","price": "1800"
            },"price": "300"
            }
        ]
    }
]

我的目的是使用v-for遍历购买的数组,以便它可以显示json中每个条目的数组内容。

我正在使用的Vue模板是:

<template>
  <div>
    <div class="card" v-for="data in purchases" :key="data.purchases">
        <div class="card-image">
          <div class="card-content">
            <div class="media">
              <div class="media-content">
                <p class="title is-4">PURCHASES</p>
                <div
                  class="columns is-variable is-1-mobile is-0-tablet is-3-desktop is-8-widescreen is-2-fullhd"
                >
                  <div class="column">Laptop: {{data.purchases[0].laptop}}</div>
                  <div class="column">Monitor: {{data.purchases[0].monitor}}</div>
                </div>
              </div>
            </div>
          </div>
        </div>
    </div>
  </div>
</template>

vue文件中的脚本:

<script>
import { ref } from "@vue/composition-api";

export default {
  setup() {
    const purchases = ref([]);
    const API_url = "http://localhost:8383/purchases";

    async function getData() {
      const reponse = await fetch(API_url);
      const json = await reponse.json();
      purchases.value = json;
      console.log(purchases);
    }

    getData();

    return {
      purchases,};
  },};
</script>

我知道我只显示数组的第一个元素,而这正是我的问题,我该如何使用v-for遍历整个数组。

我非常感谢您的帮助:)

解决方法

创建另一个嵌套的v-for以遍历data.purchases

<template>
  <div>
    <div class="card" v-for="data in purchases" :key="data.purchases">
        <div class="card-image">
          <div class="card-content">
            <div class="media">
              <div class="media-content">
                <p class="title is-4">PURCHASES</p>
                <div
                  class="columns is-variable is-1-mobile is-0-tablet is-3-desktop is-8-widescreen is-2-fullhd"
                >
                <template v-for="purchase  in data.purchases">
                  <div class="column">Laptop: {{purchase.laptop}}</div>
                  <div class="column">Monitor: {{purchase.monitor}}</div>
               </template>
                </div>
              </div>
            </div>
          </div>
        </div>
    </div>
  </div>
</template>

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...