解决vue.js 数据渲染成功仍报错的问题

最近在做一个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 数据渲染成功仍报错的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Vue在页面数据渲染完成之后的调用方法

    在使用Vue框架的时候,有时候需要在Vue在页面数据渲染完成之后调用方法,不然获取不到准确的数据,特别是在获取列表的高度的时候,由于数据没有加载完,获取不到准确的高度.之前在使用jquery的时候,有ready可以帮助我们实现,但是Vue不存在此类方法,我们需要结合watch和this.$nextTick()来实现. nextTick:在下次 DOM 更新循环结束之后执行延迟回调. watch:用于观察Vue实例上的数据变动.对应一个对象,键是观察表达式,值是对应回调. 之前我是这样子使用nex

  • vue中使用refs定位dom出现undefined的解决方法

    之前在公司做项目,一直感觉用ref来定位dom节点挺方便的.但是期间遇到了一个问题,就是在mounted(){}钩子里面使用this.$refs.xxx,打印出来的却是undefined? 于是我就对比了一下之前使用ref定位的.vue文件,发现了他们之间的区别. 我们要想知道为什么会定位不到某个DOM节点,我们首先要理解mounted(){}这个钩子函数是用来做什么的. 下面是vue官方给出的vue生命周期(部分),正如官方所说的一样,一开始不必先理解,不过随这你的学习与使用,他的参考价值会越

  • 解决vue项目中页面调用数据 在数据加载完毕之前出现undefined问题

    在项目中遇到后台数据还没有加载完毕,但是页面上调用了后台数据中的字段,这样就会报undefined. 例如:一进入页面直接回显数据. 我在created里面请求接口进行赋值 this.matterAll=[]; 会报accessItemName为undefined: 原因以及解决办法: 在上面data()中,我定义了matterAll:[],也就是空的数组, template中,我又直接用了this.matterAll[0],这个时候this.matterAll[0]=undefined,所以t

  • 解决vue.js 数据渲染成功仍报错的问题

    最近在做一个vue项目,用的是官方推荐的axios请求数据,数据结构是一级对象嵌套二级对象,发现一级对象数据渲染不报错,二级数据渲染报错.很是郁闷!data函数如下 export default { name: 'hello', data() { return { card:{} } } } 返回的数据如下: { "object":{ "subObject":"123", ... } } 报错的原因是在data函数return的card里没有二级

  • 解决vue项目运行npm run serve报错的问题

    先来一张报错的截图 先去配置环境变量 C:\Users\lgd\AppData\Local\Programs\Microsoft VS Code\bin的后面配置 :%SystemRoot%\system32;一定要注意分号, 然后在path环境中配置C:\Windows\System32 最后去项目安装依赖 npm i 运行项目 npm run serve 如果这样子项目还是报同样的错误,那么就把node全局卸载,去控制面板卸载,然后安装,最后安装依赖,运行项目就可以成功了 补充知识:vue

  • vue使用prop可以渲染但是打印台报错的解决方式

    vue属性传递时有时会报下述错误 vue.esm.js?f959:610 [Vue warn]: Error in render: "TypeError: Cannot read property 'RegistrationAuthority' of undefined" found in ---> <DialogHistory> at src/components/tools/dialog_history.vue <NurseInfor> at src/

  • 解决vue.js在编写过程中出现空格不规范报错的问题

    找到build文件夹下面的webpack.base.conf.js文件. 然后打开该文件,找到图下这段代码,把他注释掉. 注释掉之后,再进行子页面等编写的时候,空格不规范的情况下也不会再报错啦.因为这个报错对于初学者来说实在头大.哈哈O(∩_∩)O哈哈~ 我标注的这些地方,原本是有严格的空格规范要求的,这些报错真是另人烦躁呀o(╥﹏╥)o 反正我把这个问题解决了,特别开心哒哒哒~~~ 以上这篇解决vue.js在编写过程中出现空格不规范报错的问题就是小编分享给大家的全部内容了,希望能给大家一个参考

  • Vue.js 使用v-cloak后仍显示变量的解决方法

    Vue.js 使用v-cloak后仍显示变量的解决方法 v-cloak   这个指令是防止页面加载时出现 vuejs 的变量名而设计的,但有时候添加了这个指令仍会显示变量,这是怎么回事呢?. v-cloak 用法: HTML代码: <div v-cloak> {{ message }} </div> CSS代码: [v-cloak] { display: none; } 这样直至div内变量编译完毕后才会显示. 但有时添加完毕后仍有部分变量会显示,这是怎么回事呢?通过控制台查看,原

  • vue.js,ajax渲染页面的实例

    关于上次说的用vue.js,zepto,node.js,webpack等技术重构CNode.这是一个比较入门的项目,一般你学完vue就可以上手了,CNode网站有公开的API所以你可以获取这个网站的所有数据接口,然后渲染到页面上,用CSS等加工一下就可以了.起初,我一直感觉好难好难好难,虽然说不出难在哪里,就感觉好难好难好难.让我细说,不就是用ajax获取数据,然后传到组件上渲染吗,再模仿着写样式不就好了吗.是不难啊,可是为什么我心里天然觉得很难呢? CNode是给了我们数据接口,ajax也就那

  • layui数据表格 table.render 报错的解决方法

    一.报错信息 Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback. Wed Jan 23 15:20:18 CST 2019 There was an unexpected error (type=Internal Server Error, status=500). An error happened during temp

  • 解决Vue.js应用回退或刷新界面时提示用户保存修改问题

    在实际应用中,运营人员在编辑数据时不希望因不小心点击了浏览器的回退或刷新按钮导致花费了很长时间编辑的数据丢失.可以采用以下两种手段防止运营编辑时丢失数据: 在运营人员刷新页面或回退时,自动保留数据至浏览器端本地存储,在重新进入编辑页面时再将数据从本地存储中加载到编辑界面. 第二种方法是在运营人员刷新或回退时,强提示运营人员有修改的数据尚未保存,询问是否继续. 无认采用哪一种方式,在技术实现上,我们需要首先能够监听到用户执行回退或刷新页面的动作. 实际上,当用户执行页面刷新时,会触发 window

  • 解决vue.js not detected的问题

    最近在看vue的时候,发现之前装过的vuedevtools提示vue.js is not detected.重装了一次后,发现对于没有应用vue框架的页面,的确是检测不到vue.js,所以报这个很正常:切换到有vue.js资源的页面,调试界面就会自动检测出vue插件(如果还是报错,具体下文有讲).如果你跟我一样上不了chrome商店,那么希望下面的步骤可以帮到你. 首先下载插件: https://devtools.vuejs.org/guide/installation.html 之后打开chr

  • 解决vue.js提交数组时出现数组下标的问题

    这是因为在vue.js 里面的ajax.js文件内对数据进行了深度解析了,我们只需要 let axios = Axios.create({ baseURL: 'http://127.0.0.1:8761/', headers: {'X-Requested-With': 'XMLHttpRequest'}, transformRequest: [function (data) { //在data当中存在数组的话需要加上{arrayFormat: 'brackets'} 否则提交时数组会显示下标 d

随机推荐