当前位置: 首页 > 知识库问答 >
问题:

尝试使用Axios和Vue引导表显示API中的数据

薄哲
2023-03-14

大家好,所以我无法将此API中的数据显示到Vue引导表中。

这给了我一个错误:“属性或方法“products”未在实例上定义,但在呈现期间被引用。请通过初始化属性,确保此属性在数据选项或基于类的组件中是被动的。”

问题出在我的应用程序中。vue I已在实例上定义了产品。所以我不明白为什么它会给我这个错误。

这是我的应用程序。vue

    <template>
    <div id="app" class="container">
        <PagTable :products="products"/>
    </div>
</template>

<script>
import Vue from 'vue';
import axios from 'axios'
import PagTable from './components/PagTable.vue'

const vshredAPI = 'https://app.vshred.com/api/offers?include=images&per_page=25&page=1'

Vue.use(axios)
export default {
        name:"app",

        components: {
            PagTable
        },

        data(){
            return {
                Page:1,
                products: []
            }
        },
        mounted() {
            this.fetchData()
        },
        
        methods: {
            fetchData () {
                axios.get(vshredAPI + this.page)
                    .then(({data}) => {
                        this.products= data
                    })
            }
        }
}
    

</script>

<style>
#app {
  font-family: 'Avenir', Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}
</style>

分页组件

  <template>
  <table class="table">
    <thead class="thead-dark">
      <tr>
        <th scope="col">id</th>
        <th scope="col">Name</th>
        <th scope="col">Image</th>
        <th scope="col">Price</th>
                <th scope="col">Purchase</th>
      </tr>
    </thead>
    <tbody>
      <tr v-for="product in products" :key="product.id">
        <th scope="row">1
                    {{ products.indexOf(product) + 1 }}
                </th>
        <td>{{product.id}}</td>
        <td>{{product.name}}</td>
        <td>
                    <img v-if="product.image.url" class="image" :src="product.image.url"/>
                </td>
      </tr>
    </tbody>
  </table>  
</template>

<script>
export default {
    name: 'PageTable',

    props: {
        proudcuts: Array
    }
}

</script>
<style scoped>
</style>

如果有人能帮助我或指导我,那将是非常感谢的

共有1个答案

韦繁
2023-03-14

您的PagTable组件中有一个输入错误,当它应该是产品时,另一件事是关于您的v-如果您这样做会很好:

<tbody>
  <tr v-for="(product, index) in products" :key="product.id">
    <th scope="row">
      {{ index + 1 }}
    </th>
    <td>{{product.id}}</td>
    <td>{{product.name}}</td>
    <td>
      <img v-if="product.image.url" class="image" :src="product.image.url"/>
    </td>
  </tr>
</tbody>

如您所见,您可以从v-for获取index属性,而不是使用products对象,有关更多信息,请查看链接中的文档:https://br.vuejs.org/v2/guide/list.html

 类似资料:
  • 下面的代码在web浏览器中工作,我可以使用v-for检索json数据: 所以我尝试在nativescript vue与ListView这样: 但它根本无法检索数据或错误消息。 有什么要我补充的吗? 我正在路由器上使用NativeScip vue cli模板,因此我已经插入了以下依赖项: 从axios导入axios; 从“vue axios”导入VueAxios; Vue.use;

  • 尝试从这个Axios调用中获取超文本标记语言,以在b选项卡中呈现。运气不好。除了那里,它在任何地方都有效。对Vue来说还是很新鲜的,有点困惑我在这里错过了什么。我觉得编译在这里可能很有用,但也可能是过度的。 HTML: Vue:

  • 我正在尝试使用Vue和Axios的GET请求从我们的业务服务器获取一些数据。但是,我遇到了401未经授权的错误。当我使用内部号登录时,我能够使用RESTED获取这些数据。我已经看了这篇文章:如何使用axios发送Basic Auth,但没有解决方案对我有用。这是我发出get请求的代码: 我也尝试过不使用“标题”。这是错误消息: 希望有人有主意,因为我不知所措。

  • 我正在创建一个电子学习网站,那里有你可以选择的课程卡片。这是我的密码 课程ist.vue 我的问题是我无法从API链接获取数据- 我想知道我做错了什么。我也尝试使用{{list}}来获取数据,但没有成功。我现在的目标是得到所有的数据,即使它看起来很乱。抱歉我英语不好,谢谢你!

  • 我有一张用户档案卡,可以在盒子里显示不同的测量值,比如温度、体积和重量。 目前,我正在从axios GET请求中获取每个用户的名称,然后我需要获取该数据中的ID,并使用该ID执行另一个GET请求,该ID为我提供性能数据,在该数据中,我获得了一个性能ID,我需要使用该ID来获取最终的测量数据数组。 我想知道如何才能仅为具有性能Id的用户发出最后一个GET请求,然后获取测量数据并显示在每个测量框的每个

  • 问题内容: 我对JavaScript的了解很少(没有),或者对使用API​​的了解很多。但是,我想在我的网站上显示一些酒店评论,这些评论通过qype.com API提供。但是,我正在努力管理这一点。 这是我到目前为止的代码: 我的正文中有一个div,它要显示文本。 任何建议都收到了。 JSON可以在http://api.yelp.com/business_review_search?term=hi