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 相关文章推荐
解读IE和firefox下JScript和HREF的执行顺序
Jan 12 Javascript
使用Microsoft Ajax Minifier减小JavaScript文件大小的方法
Apr 01 Javascript
jQuery EasyUI API 中文文档 - Draggable 可拖拽
Sep 29 Javascript
获取下拉列表框的值是数组,split,$.inArray示例
Nov 13 Javascript
Javascript基于AJAX回调函数传递参数实例分析
Dec 15 Javascript
两种JavaScript的AES加密方式(可与Java相互加解密)
Aug 02 Javascript
响应式表格之固定表头的简单实现
Aug 26 Javascript
jQuery读取XML文件的方法示例
Feb 03 Javascript
webpack开发跨域问题解决办法
Aug 03 Javascript
浅谈vue,angular,react数据双向绑定原理分析
Nov 28 Javascript
Angularjs 根据一个select的值去设置另一个select的值方法
Aug 13 Javascript
JS获取当前时间的实例代码(昨天、今天、明天)
Nov 13 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
PHP中的日期处理方法集锦
2007/01/02 PHP
浅析PHP反序列化中过滤函数使用不当导致的对象注入问题
2020/02/15 PHP
PHP 出现 http500 错误的解决方法
2021/03/09 PHP
ImageFlow可鼠标控制图片滚动
2008/01/30 Javascript
JS判断不能为空实例代码
2013/11/26 Javascript
jquery实现显示已选用户
2014/07/21 Javascript
文本框倒叙输入让输入框的焦点始终在最开始的位置
2014/09/01 Javascript
jquery实现炫酷的叠加层自动切换特效
2015/02/01 Javascript
Node.js DES加密的简单实现
2016/07/07 Javascript
JS中使用FormData上传文件、图片的方法
2016/08/07 Javascript
JavaScript中匿名函数的递归调用
2017/01/22 Javascript
js实现多行文本框统计剩余字数功能
2017/03/28 Javascript
js编写选项卡效果
2017/05/23 Javascript
用原生JS实现简单的多选框功能
2017/06/12 Javascript
node.js的exports、module.exports与ES6的export、export default深入详解
2017/10/26 Javascript
vscode中vue-cli项目es-lint的配置方法
2018/07/30 Javascript
vue 使用axios 数据请求第三方插件的使用教程详解
2019/07/05 Javascript
JavaScript算法学习之冒泡排序和选择排序
2019/11/02 Javascript
Python使用QRCode模块生成二维码实例详解
2017/06/14 Python
matplotlib命令与格式之tick坐标轴日期格式(设置日期主副刻度)
2019/08/06 Python
pandas 对group进行聚合的例子
2019/12/27 Python
解决python虚拟环境切换无效的问题
2020/04/30 Python
python怎么判断模块安装完成
2020/06/19 Python
PyCharm 光标变成黑块的解决方式
2021/02/06 Python
Django视图类型总结
2021/02/17 Python
使用HTML和CSS实现的标签云效果(附demo)
2021/02/03 HTML / CSS
春秋航空官方网站:Spring Airlines
2017/09/27 全球购物
MyHeritage美国:家族史研究和DNA测试的领先服务
2019/05/27 全球购物
法国一家多品牌成衣精品中/高档商店:Graduate Store
2019/08/28 全球购物
党风廉设责任书
2014/04/16 职场文书
学校课外活动总结
2014/05/08 职场文书
2015年学校工作总结范文
2015/04/20 职场文书
党课主持词大全
2015/06/30 职场文书
导游词之青城山景区
2019/09/27 职场文书
Python实现查询剪贴板自动匹配信息的思路详解
2021/07/09 Python