微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

VUE.JS API 数据通过使用 axios 在 V-data-table 中显示不起作用:它没有显示数据

如何解决VUE.JS API 数据通过使用 axios 在 V-data-table 中显示不起作用:它没有显示数据

我是初学者,我尝试使用 Vue.js 和 Vuetify 访问 API 并显示表格。 我从 API 获取数据,但无法通过 v-data-table 显示

这是我的代码

HTML 部分

    <v-data-table :items="data" :headers="headers" :items-per-page="5">
       <template slot="data" slot-scope="props">
        <td>{{ props.data.userId }}</td>
        <td>{{ props.data.id }}</td>
        <td>{{ props.data.title }}</td>
      </template>
    </v-data-table>

脚本部分

<script>
import axios from "axios";
export default {
  name: "Current",data: () => ({
    items: ["albums","todos","posts"],selected: "",headers: [
      { text: "USER_ID",align: "start",sortable: false,value: "userId" },{ text: "ID",value: "id" },{ text: "TITLE",value: "title" },],data:[],}),methods: {
    getData() {
      axios
        .get("https://jsonplaceholder.typicode.com/users/1/" + this.selected,{dataType: 'json'})
        .then((response) => { this.data = response.data;})
        .catch((err) => alert(err));
    },},mounted() {
    this.getData();
  }

};
</script>

Here is the output that I got

Here is what I want

解决方法

我重构了您的代码,首先,当您从 json 占位符获取数据时,响应中只有一个对象,您必须将该对象推送到 data: [],而不是分配。此外,您的 v-data-table 模板看起来很奇怪,标题中的值应该与响应数据中的键名相匹配。

<template>
  <v-app>
    <v-data-table :items="data" :headers="headers" :items-per-page="5">
      <template v-slot:items="props">
        <td>{{ props.item.id }}</td>
        <td>{{ props.item.name }}</td>
        <td>{{ props.item.email }}</td>
      </template>
    </v-data-table>
  </v-app>
</template>

<script>
import axios from "axios";

export default {
  name: "App",data: () => ({
    items: ["albums","todos","posts"],selected: "",headers: [
      { text: "USER_ID",align: "start",sortable: false,value: "id" },{ text: "EMAIL",value: "email" },{ text: "NAME",value: "name" },],data: [],}),methods: {
    getData() {
      return axios
        .get("https://jsonplaceholder.typicode.com/users/1/" + this.selected,{
          dataType: "json",})
        .then((response) => {
          this.data.push(response.data)
        })
        .catch((err) => alert(err));
    },},mounted() {
    this.getData();
  },};
</script>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?