读取res.data.data数据后,vue却不渲染不显示,同时也不报错

在练习vue的时候使用axios从后台获取数据返回前端后,想将数据渲染上去的,我原先的想法是获取对应选项,进入详情页,将其数据进行渲染,但是,vue不显示数据,也不报错,代码如下

<template>
    <div class="about">
        <h1>{{id ? '编辑':'新建'}}博客</h1>
        <!-- native表示原生表单,prevent表示不要跳转 -->
        <el-form label-width = 120px @submit.native.prevent="save">
            <el-form-item label="标题">
                <el-input v-model="model.title"></el-input>
            </el-form-item>
            <el-form-item label="内容">
                <el-input v-model="model.content"></el-input>
            </el-form-item>
            <el-form-item>
                <el-button type="primary" native-type="submit">保存</el-button>
            </el-form-item>
        </el-form>
    </div>
</template>

<script>
    export default {
        props:{
            id: {}
        },
        data(){
            return {
                model:{}
            }
        },
        methods:{
            async save(){
                const res = await this.$http.post('/api/blog/create',this.model)
                console.log(res)
                this.$router.push('/blog/list')/
                this.$message({
                    type: 'success',
                    message: '保存成功'
                })

            },
            async fetch(){
                const res = await this.$http.get(`/api/blog/edit/${this.id}`)
                this.model = res.data.data
            }

        },
        created(){
            this.id && this.fetch()//有id的时候进行
        }
    }
</script>

实际效果却是内容不显示,如下

在这里插入图片描述

解决方案

后面发现穿回来的是个数组,并不能直接简单粗暴的赋值res.data.data
,而应该是

async fetch(){
                const res = await this.$http.get(`/api/blog/edit/${this.id}`)
                this.model = res.data.data[0]
            }

效果如下
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值