vue组件中数据是通过axios返回的,但是没等axios返回就渲染了,这个怎么解决?

发布于 2022-09-04 20:31:22 字数 518 浏览 10 评论 0

<template>
   <!--这里如果axios还没有返回数据那么就报name undefined,这个怎么解决???-->
   <mycomponent :mydata="thisdata.name"/>
</template>
<script>
   export default{
     data(){
       return {
          thisdata:null
       }
     },
     methods:{
       getThisData(){
         let that = this;
         axios.get('')
         .then(function(res){
           that.thisdata = res.data;
         })
       }
     },
     components:{
       mycomponent
     }
   }
</script>

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

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

发布评论

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

评论(6

债姬 2022-09-11 20:31:22

<mycomponent :mydata="thisdata&&thisdata.name"/>这么做就不会报错了,

 getThisData(){
         let that = this;//可以不用that
         axios.get('')
         .then(function(res){
           that.thisdata = res.data;
         })
       }

直接用箭头函数:

 getThisData(){
         axios.get('')
         .then((res)=>{
           this.thisdata = res.data;
         })
       }
小…红帽 2022-09-11 20:31:22

undefined是因为你没有初始化啊,你在data中初始化下它就行了

export default{
     data(){
       return {
          thisdata:{
              name: ''
          }
       }
     }
   }
情愿 2022-09-11 20:31:22

加个 v-if 就可以了

<mycomponent :mydata="thisdata.name" v-if="thisdata.name"/>

2022-09-11 20:31:22
<template>
   <mycomponent :mydata="thisdata.name" v-if="isloading"/>
</template>
<script>
export default {
    data () {
       return {
           isloading: false,
           thisdata: {}
       }
     },
     mounted () {
         this.getThisData()
     },
     methods: {
         getThisData () {
             let that = this
         
             axios.get('').then((res) => {
                 that.isloading = true
                 that.thisdata = res.data
             })
        }
     },
     components: {
         mycomponent
     }
}
</script>
来世叙缘 2022-09-11 20:31:22
data(){
    this.getThisData()
    return {
        thisdata:null
    }
},

运行才能取数据

你的往事 2022-09-11 20:31:22

改成同步,配合 async/await使用

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