Vue 报错TypeError: this.$set is not a function 的解决方法


Posted in Javascript onDecember 17, 2018

报错场景:将APi中得到的response数据,用Vue$set()使数据动态响应

报错代码:

methods: {
  textTranslate: function (text, to) {
 
   $.ajax({
    url: 'http://openapi.youdao.com/api',
    type: 'post',
    dataType: 'jsonp',
    data: {
     q: text,
     appKey: this.appKey,
     salt: this.salt,
     from: this.from,
     to: to,
     sign: md5(this.appKey + text + this.salt + this.key)
    },
    success: function (data) {
     this.$set(this.$data, 'translatedText', data.translation[0])
    }
   })
  }
 }

报错原因:这里的this指向的不是VueModel,

解决方法1:在执行函数中定义指向Model的变量 let vm = this ,用该变量替代this

methods: {
  textTranslate: function (text, to) {
   let vm = this
   $.ajax({
    url: 'http://openapi.youdao.com/api',
    type: 'post',
    dataType: 'jsonp',
    data: {
     q: text,
     appKey: this.appKey,
     salt: this.salt,
     from: this.from,
     to: to,
     sign: md5(this.appKey + text + this.salt + this.key)
    },
    success: function (data) {
     vm.$set(vm.$data, 'translatedText', data.translation[0])
    }
   })
  }
 }

解决方法2:将。siccess改为箭头函数的写法,这样子箭头函数里的this其实是指向VueModel的,这样子用this看不会报错了

success: (data) => {
     this.$set(this.$data, 'translatedText', data.translation[0])
    }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript调用C#代码
Jan 17 Javascript
JavaScript中5种调用函数的方法
Mar 12 Javascript
javascript中的Function.prototye.bind
Jun 25 Javascript
Js得到radiobuttonlist选中值的两种方法(推荐)
Aug 25 Javascript
js入门之Function函数的使用方法【新手必看】
Nov 22 Javascript
jQuery Mobile漏洞会有跨站脚本攻击风险
Feb 12 Javascript
使用原生的javascript来实现轮播图
Feb 24 Javascript
Vue 2.0 服务端渲染入门介绍
Mar 29 Javascript
JS实现自动轮播图效果(自适应屏幕宽度+手机触屏滑动)
Jun 19 Javascript
5 种JavaScript编码规范
Jan 30 Javascript
详解vue使用$http服务端收不到参数
Apr 19 Javascript
JavaScript中的垃圾回收与内存泄漏示例详解
May 02 Javascript
vuex 解决报错this.$store.commit is not a function的方法
Dec 17 #Javascript
详解Vue This$Store总结
Dec 17 #Javascript
vue + element-ui的分页问题实现
Dec 17 #Javascript
Vue 中的受控与非受控组件的实现
Dec 17 #Javascript
js实现移动端轮播图
Dec 21 #Javascript
微信小程序登录按钮遮罩浮层效果的实现方法
Dec 16 #Javascript
微信小程序 JS动态修改样式的实现方法
Dec 16 #Javascript
You might like
Phpbean路由转发的php代码
2008/01/10 PHP
php获取mysql数据库中的所有表名的代码
2011/04/23 PHP
php处理文件的小例子(解压缩,删除目录)
2013/02/03 PHP
深入php常用函数的使用汇总
2013/06/08 PHP
php+js实现异步图片上传实例分享
2014/06/02 PHP
PHP mkdir()无写权限的问题解决方法
2014/06/19 PHP
php实现的数字验证码及数字运算验证码
2015/07/30 PHP
php中final关键字用法分析
2016/12/07 PHP
Laravel 5.4.36中session没有保存成功问题的解决
2018/02/19 PHP
Yii2框架实现利用mpdf创建pdf文件功能示例
2019/02/08 PHP
php函数式编程简单示例
2019/08/08 PHP
redis+php实现微博(二)发布与关注功能详解
2019/09/23 PHP
JavaScript中如何通过arguments对象实现对象的重载
2014/05/12 Javascript
跟我学Nodejs(一)--- Node.js简介及安装开发环境
2014/05/20 NodeJs
JavaScript中join()方法的使用简介
2015/06/09 Javascript
React Native 搭建开发环境的方法步骤
2017/10/30 Javascript
vue页面跳转后返回原页面初始位置方法
2018/02/11 Javascript
jQuery+ajax读取json数据并按照价格排序示例
2018/03/28 jQuery
深入理解redux之compose的具体应用
2020/01/12 Javascript
JS变量提升及函数提升实例解析
2020/09/03 Javascript
vue使用canvas实现移动端手写签名
2020/09/22 Javascript
wxPython中文教程入门实例
2014/06/09 Python
深入分析python中整型不会溢出问题
2018/06/18 Python
Python中pip更新和三方插件安装说明
2018/07/08 Python
python文件写入write()的操作
2019/05/14 Python
Python中栈、队列与优先级队列的实现方法
2019/06/30 Python
浅谈matplotlib中FigureCanvasXAgg的用法
2020/06/16 Python
matplotlib运行时配置(Runtime Configuration,rc)参数rcParams解析
2021/01/05 Python
CSS3实现多样的边框效果
2018/05/04 HTML / CSS
Crocs卡骆驰洞洞鞋日本官方网站:Crocs日本
2016/08/25 全球购物
德国旅游网站:weg.de
2018/06/03 全球购物
C#中类(class)与结构(struct)的异同
2013/11/03 面试题
2014元旦晚会策划方案
2014/02/19 职场文书
2015年高校教师个人工作总结
2015/05/25 职场文书
陪护人员误工证明
2015/06/24 职场文书
2016年“我们的节日·清明节”活动总结
2016/04/01 职场文书