vue 报错 :属性undefined(页面成功渲染)

vue 报错:Cannot read property ‘instrumentId‘ of undefined"

相关代码如下:

<template>
    ...
    <span>{{data.params.instrumentId}}</span>
    ...
</template>

<script>
export default {
  data () {
    return {
      data: {}
    };
  },
  methods: {
    // 请求接口获得数据
    getData () {
      request({
        url: ‘/tapi/futures/‘
      }).then(response => {
        if (response) {
          allData = response; // allData 是一个对象,用来储蓄数据
          this.data = allData.IF;
        }
      });
    }
  },
  created () {
    this.getData();
  }
};
</script>    

结果返回的数据结构如图:

虽然页面可以正常显示,但 Vue 和浏览器控制台都报错如下,一直找不到原因,求解。

解决方法

1.因为是异步请求,页面渲染刚的时候还没有拿到这个值,所以会报错。你需要在节点上用if判断一下,在有数据的时候再进行渲染。或者你在声明data的时候,将里面的字段也一并声明出来。

<template>
    ...
    <span v-if="data.params && data.params.instrumentId">{{data.params.instrumentId}}</span>
    ...
</template>

2.

 created () {
    this.getData();
  }
把上面改成如下:
 created () {
    this.$nextTick(function(){
        this.getData();
    });
  }

原文地址:https://www.cnblogs.com/huancheng/p/9188287.html

时间: 2024-10-05 23:27:26

vue 报错 :属性undefined(页面成功渲染)的相关文章

vue 报错解决:TypeError: Cannot read property &#39;_t&#39; of undefined&quot;

前端报错如下: [Vue warn]: Error in render: "TypeError: Cannot read property '_t' of undefined" 是在项目中用了多语言配置,vue 跟 i18n之间的兼容问题.解决方法如下: Vue.use(iView) 替换成 Vue.use(iView, { i18n: function(path, options) { let value = i18n.t(path, options) if (value !== n

vue 报错:Cannot read property &#39;__ob__&#39; of undefined

我的原因:引入组件后未注册 <script> import ComFirst from "../../components/ComFirst.vue" import ComSecond from "../../components/ComSecond.vue" export default { name: 'VueFirst', data() { return {} }, components: { //<<这一步未做 ComFirst, C

使用Vue报错 --- &quot;TypeError: fn.bind is not a function&quot;

使用Vue报错[Vue warn]: Error in nextTick: "TypeError: fn.bind is not a function"页面进不去. 解决思路: (1)看报错信息是methods里有个方法你写的并不是一个函数,可能写了个对象什么的,vue进行fn.bind()处理的时候,.bind取到的可能是undefined. (2) 检查一下你methods里面的方法  ,  看看data mounted methods 写的是方法还是对象 原文地址:https:/

vue报错集锦

1.vue报错: 没安装 less-loader css-loader style-loader      可能的很大原因:没安装less 2.vuex报错:Computed property "xxx" was assigned to but it has no setter 在使用了vuex的情况下,state时导入的state,在页面中不能直接更改state的值,需要在mutation方法中更改,然后在vue组件中commit该方法 3.iview报错:iview出现col栅格提

Vue报错:Uncaught TypeError: Cannot assign to read only property &#39;exports&#39; of object 的解决方法

问题是这样的:如下>> 解决办法: 1“:我的webpack 最高版本,造成 混用import和module.exports :所以降低webpack版本 安装指定版本:npm install [email protected] -g 例如:npm install [email protected] -g 删除 编译目录文件: 2重新生成 然后输入启动命令: 成功解决!效果: 方法二: 注释掉后一个 重新生成,启动项目 OK! Vue报错:Uncaught TypeError: Cannot

vue报错 Module not found: Error: Cannot resolve &#39;file&#39; or &#39;directory&#39;

炸了,我好写sell而组件,直接就用了,我的天哪 看你的写了吗,就用: Module not found: Error: Cannot resolve 'file' or 'directory' 页另一种错误,按这种情况我没遇到:http://www.mamicode.com/info-detail-1564042.html vue报错 Module not found: Error: Cannot resolve 'file' or 'directory'

【Vue报错】Module build failed: Error: No parser and no file path given, couldn&#39;t infer a p arser.

在创建一个vue项目启动时报错,报错的内容为: error in ./src/App.vue Module build failed: Error: No parser and no file path given, couldn't infer a p arser. at UndefinedParserError.Wrapper (D:\dyyc\bookstore\[email protected] [email protected]\index.js:1948:14) at new Und

vue报错之Duplicate keys detected: &#39;0&#39;. This may cause an update error.

昨天运行vue项目的时候,出现了[Vue warn]: Duplicate keys detected: '0'. This may cause an update error. 错误,检测到重复的key值.主要是写了两个for循环,我们在使用v-for的时候,都要加上一个必要的key值,然而又将key的值写成一样的了. 可以将其中一个的key修改一下即可. <div class="info1" v-for="(item, index) in itemList"

Vue报错 Duplicate keys detected: &#39;1&#39;. This may cause an update error. vue报错

情况一.错误信息展示为关键字‘keys‘,此时应该检查for循环中的key,循环的key值不为唯一性 (很普通) 情况二.有两个相同的for循环,而这两个for循环的key值是一样的,此时将一个的key值加一个数字或者加一个字符串例如 Vue报错 Duplicate keys detected: '1'. This may cause an update error. vue报错 原文地址:https://www.cnblogs.com/qiu-Ann/p/11359728.html