视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
解决vue.js 数据渲染成功仍报错的问题
2020-11-27 22:09:11 责编:小采
文档


最近在做一个vue项目,用的是官方推荐的axios请求数据,数据结构是一级对象嵌套二级对象,发现一级对象数据渲染不报错,二级数据渲染报错。很是郁闷!data函数如下

 export default {
 name: 'hello',
 data() {
 return {
 card:{} 

 }
 }
 }

返回的数据如下:

{
 "object":{
 "subObject":"123",
 ...
 }
}

报错的原因是在data函数return的card里没有二级对象.所以会报错;

解决办法是:

export default {
 name: 'detail',
 data() {
 return {
 loading: false,
 card:{},
 }
 },
 created() {
 this.fetchData();
 },
 methods: {
 fetchData() {
 this.loading = true;
 let that=this;
 this.ajax.get(url, { params: { id: "yourId" } })
 .then(function (response) {
 that.loading = false;
 }, function (error) {
 console.log(error);
 })

 }
 }

然后在html中加上下面这句:

<template>
 <div v-if="!loading">
 <!----你的html代码------>
 </div>
</template>

然后就不会报错了!希望对你有帮助!~溜了~~~

拓展知识:解决Vue组件页面渲染正常对象报错undefined的问题

首先,页面代码:{{options.fileList[0].fullPath}},

渲染结果:(渲染成功),

但是控制台依然报错:

如果有跟我遇到同样问题的朋友一定跟我一样,心里一万只草泥马飘过,都显示正常了,你TM的还给我报错,这我就忍不了了,首先我在页面节点上直接打印,OK,没有问题,能完美的打印出来,然后换了个思路,在mounted里面看看什么情况呢,功夫不负有心人, ,mounted里面打印出来是个空的数组,那么我应该就知道什么问题了,应该是页面加载的时候,数据还没有传过来,但是这时候我们已经开始在使用了,所以会报undefined的错误,当数据的值传过来的时候,页面找到这个数据,并渲染上去,所以我看到的页面又是正常了,所以这样的问题应该怎么解决呢?

答案也很简单,在你渲染的节点加个判断就好了, ,这样的话当发现它为undefined的时候就不会去读取数据,等有数据的时候再去读取,这样的话,就不会出现undefined的错误了。

以上这篇解决vue.js 数据渲染成功仍报错的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

下载本文
显示全文
专题