Der Zugriff auf Daten in Vue ist über die Get-Anfrage von Axios nicht möglich
P粉204079743
P粉204079743 2023-09-12 14:07:12
0
1
744

Ich bin neu bei Vue und verstehe nicht, was ich hier falsch mache.

Ich habe diese einfache Komponente:

<template>
    <template v-if="loading">
      Loading...
    </template>
    <template v-else>
      <div class="row">
          {{ row }}
      </div>
    </template>
  </template>

  <script>
    import { api } from 'src/boot/axios';
    import { useUserLoginStore } from 'src/stores/UserLoginStore';


    export default {

    async mounted() {
      this.loading = true

      try {
        const res = await api.get(`/v-cards/slug/${this.$route.params.slug}`, {
          headers: {
            Authorization: `Bearer ${useUserLoginStore().userToken}`,
          }
        });
        this.rows = await res.data
        this.loading = false
        console.log('rows', this.rows)
      } catch (error) {
        this.error = true
        console.log(error)
        this.loading = false
      }


    },

    data() {
      return {
        loading: false,
        row: [],
      }
    },
}

  </script>

Aber wenn ich die Seite rendere, sehe ich nur ein leeres Array. Der API-Aufruf ist in Ordnung, da ich die korrekten Daten im Konsolenprotokoll sehe.

P粉204079743
P粉204079743

Antworte allen(1)
P粉714844743

您等待 res.data 有什么具体原因吗?您已经在等待上面的 api 调用响应。我相信删除 res.data 前面的等待应该可以解决您的问题。

更改此行:

this.rows = await res.data

对此:

this.rows = res.data

这是假设 res.data 正是您期望的数组。并且不嵌套在另一个对象属性中。

此外,在模板中,您应该使用rows而不是row

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage