我又来提问了 关于axios的

发布于 2022-09-11 15:33:55 字数 1309 浏览 11 评论 0

源代码
<template>
    <div class="header">
        <div v-for="(val,index) in list" :key="index">
            <ul>
                <li>{{val.name}}</li>
                <li></li>
            </ul>
        </div>
    </div>
</template>
<script>
    import axios from 'axios'
    export default {
        name: "axiso",
        data() {
            return {
                list: [],
            }

        },
        mounted() {
            this.getJson()
            console.log(this.list)
        },
        methods: {
            getJson() {
                console.log(this)
                const url = "http://localhost:8080/api"
                axios.get(url).then(res => {
                    this.list = res.data
                    console.log(this.list, '------');
                });
            },
        }
    }
</script>
<style>
</style>

console.log

console.log

也能获取到数据,但是就是不能渲染到页面里

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

不及他 2022-09-18 15:33:55

VUE直接数组赋值是不会触发试图更新的,把数据push到list里才能触发试图更新。

我的奇迹 2022-09-18 15:33:55

你没有用es6的写法,这里边你用this是指向不到你的data里定义的内容的。
你在axios外加上 let that = this;试一试,看看行不行。

命硬 2022-09-18 15:33:55

接口返回的JSON格式不对

奈何桥上唱咆哮 2022-09-18 15:33:55

看你的截图,console.log打印的this.list{{'id':1,'name':''},{},{},} ,这好像格式不对啊。。。

正常的json格式数据打印出来是这样子的:
图片描述

试试转换下数据格式let data = JSON.parse(res.data),或者让给后端给正确的json格式的数据。

心头的小情儿 2022-09-18 15:33:55

使用JSON.parse()把json字符串转换为json对象

axios({
    url: url,
    method: 'get'
}).then( res => {
    let data = JSON.parse(res.data)
    this.list = data
})

别低头,皇冠会掉 2022-09-18 15:33:55

你的这个list格式有问题吧,不是一个数组。所以循环不出来。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文