TypeError: Cannot read property ‘call‘ of undefined“

我是使用引用vue.js的方式使用vue的,只有一个页面,但是却报了错了,网上的都是大项目出的问题,所以记录一下

错误:

错误

我的代码:
new Vue({
    el:'#app',
    data:{
  	 // 温度
      count:15,
     // 穿什么
      a:'111',
    },
    watch:{
      a:{
        handle(){
          console.log('12345')
          if(this.count>=20) return "短袖";
          if(this.count>10&&this.count<20) return "长袖";
          if(this.count<=10) return "毛衣";
        },
        immediate:true,
      },
    }
  })
修改之后不报错的代码:
new Vue({
    el:'#app',
    data:{
      count:15,
      a:''
      // arr:["短袖",'长袖','毛衣'],
    },
    watch:{
      'count':{
        handler(newVal){
          if(newVal>=20) return this.a="短袖";
          if(newVal>10&&newVal<20) return this.a="长袖";
          if(newVal<=10) return this.a="毛衣";
        },
        immediate:true,
      },
    }
  })

原因:

  1. 监听错误。想修改a的值,所以就监听a了,实际上应该监听count,然后根据count改变a的值
  2. 要用 handler 而不可以自己定义一个名字 handle (这就是报错原因)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TypeError: Cannot read property 'call' of undefined错误是指在调用一个未定义的对象的call方法时发生的错误。根据引用和引用[2]的内容,我们可以了解到这个错误通常发生在使用Vue.js路由时,可能是因为路由配置有误导致调用了未定义的函数或方法。 根据引用中提到的错误详情,TypeError通常是由于变量或参数不是预期类型引起的。在Vue.js中,路由配置常常使用到call方法来调用相应的函数,而当调用的对象是undefined时,就会触发该错误。 举个例子,假设在Vue.js路由配置中有如下代码: ```javascript router.beforeEach((to, from, next) => { // 在此处调用了一个不存在的函数 to.meta.beforeEnter.call(); next(); }); ``` 在这个例子中,to.meta.beforeEnter是一个函数对象,但如果这个函数对象未定义,就会产生TypeError: Cannot read property 'call' of undefined错误。 因此,解决这个错误的方法就是确保在路由配置中所调用的函数或方法都是已定义的。可以检查路由配置文件,确保所有使用到call方法的函数都是存在的。另外,也可以在调用函数之前先进行类型判断,避免调用未定义的函数。 总结起来,TypeError: Cannot read property 'call' of undefined错误通常发生在Vue.js路由配置中,是由于调用了未定义的函数或方法导致的。解决这个错误的方法是确保所有调用的函数都是已定义的,并进行必要的类型判断。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值