一、报错

出现this.setData is not a function报错的绝大多数情况是,在回调时,this指向作用域为当前异步方法所在的对象,详见微信小程序异常处理——this.setData is not a function报错处理

二、排查原因

但我并没有在回调中使用this.setData(),仅在onLoad里使用也报了这个错误,于是将问题定位到使用了uni-app框架的原因上。

三、解决方式:

3.1 直接使用this.xx = xxx

修改:

this.setData({loading: false,areaList: response.data.data
})

为:

this.loading = false;
this.areaList = response.data.data。

3.2 重写setData方法

setData:function(obj){
let that = this;
let keys = [];
let val,data;
Object.keys(obj).forEach(function(key){    keys = key.split('.');    val = obj[key];    data = that.$data;    keys.forEach(function(key2,index){    if(index+1 == keys.length){    that.$set(data,key2,val);    }else{    if(!data[key2]){    that.$set(data,key2,{});    }    }    data = data[key2];    })
});
}

四、实例 setData+scroll-into-view实现页面加载时分页组件滚到最底部

  1. scroll-view要给定高度
  2. 在uni-app中不要使用{{}}来绑定动态属性
<template><view style="padding:50rpx 10rpx;border:1px solid #333"><scroll-view style="border:1px solid #000;height:500rpx;" scroll-y :scroll-into-view="toLast"><viewv-for="(item,index) in testList":key="item.id"style="border:1px solid #ccc;":id="'item'+index"><view class="a" style="margin:20rpx 0">{{item.a}}</view><view class="q" style="margin:20rpx 0">{{item.q}}</view></view></scroll-view></view>
</template><script>
export default {onLoad() {this.toLast = "item8";this.setData({ toLast: "item8" });},data() {return {test1: "01",test2: "02",toLast: "item",testList: [{ id: 1, q: "1qwert", a: "1asdfg" },{ id: 2, q: "2qwert", a: "2asdfg" },{ id: 3, q: "3qwert", a: "3asdfg" },{ id: 4, q: "4qwert", a: "4asdfg" },{ id: 5, q: "5qwert", a: "5asdfg" },{ id: 6, q: "6qwert", a: "6asdfg" },{ id: 7, q: "7qwert", a: "7asdfg" },{ id: 8, q: "8qwert", a: "8asdfg" },{id: 9,q: "9qwert",a: "9asdfg"}]};},methods: {setData: function(obj) {let that = this;let keys = [];let val, data;Object.keys(obj).forEach(function(key) {keys = key.split(".");val = obj[key];data = that.$data;keys.forEach(function(key2, index) {if (index + 1 == keys.length) {that.$set(data, key2, val);} else {if (!data[key2]) {that.$set(data, key2, {});}}data = data[key2];});});}}
};
</script>

使用uni-app报错this.setData is not a function相关推荐

  1. android app报错log,Android studio 解决logcat无过滤工具栏的操作

    在logcat标题栏右键先windows mode,这时多数能恢复过滤工具栏,要恢复之前的停靠样式再同样点右键去掉windows mode的勾即可 补充知识:Android studio底部Logca ...

  2. uniapp使用插件 小程序正常 app报错cid unmatched at view.umd.min.js:1

    app报错 并且uni-swipe-action滑动也不生效 10:20:55.354 cid unmatched at view.umd.min.js:1 10:20:55.375 TypeErro ...

  3. SAP MM ME29N 试图取消审批报错 - Document has already been outputed(function not possible) -

    SAP MM ME29N 试图取消审批报错 - Document has already been outputed(function not possible) - 今天收到用户的一个问题,说他试图 ...

  4. mysql创建存储函数报错:ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL...

    在创建存储函数的时候出现了报错: ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL D ...

  5. antd Datepicker组件报错 ——date.clone is not a function或者date1.isAfter is not a function

    问题描述: antd Datepicker组件报错 --date.clone is not a function或者date1.isAfter is not a function 原因分析: 在Fro ...

  6. npm 报错cb.apply is not a function

    npm 报错cb.apply is not a function的解决办法: 按照这个目录C:\Users(your username)\AppData\Roaming 可以Win + r 输入 %a ...

  7. Opencv中,imag=cv2.cvtColor(imag,cv2.COLOR_BGR2GRAY) 报错:error:!_src.empty() in function ‘cv::cvtColor‘

    Opencv,imag=cv2.cvtColor(imag,cv2.COLOR_BGR2GRAY) 报错:error:!_src.empty() in function 'cv::cvtColor' ...

  8. DatePicker选择日期报错clone.weekday is not a function

    form.setFieldsValue设置默认值 之后去选择日期 报错clone.weekday is not a function 解决方法: import weekday from "d ...

  9. react报错: 代码中直接使用dispatch报错,dispatch is not a function

    如果你像这样使用connect(()=>({},dispatch=>({})))(),在其第二个参数中将dispatch作为参数传了进去,那么你就没办法在代码中直接使用dispatch({ ...

最新文章

  1. C语言基础(12)-输入和输出
  2. Microsoft office Communications server 2007部署
  3. TQ2440的学习——UBOOT移植(串口控制台的支持)
  4. webservice接口与HTTP接口学习笔记
  5. 数据结构栈队列链表数组
  6. 上传文件到服务器并显示,J2EE如何实现Servlet上传文件到服务器并相应显示功能...
  7. notepad++ 远程连接阿里云服务器
  8. mysql索引使增删变慢_mysql优化(四)–索引
  9. [转]CellCtrl控件完美破解研究
  10. el-tree多选获取选中的节点ID
  11. Atitit.js javascript异常处理机制与java异常的转换 多重catc hDWR 环境 .js exception process Vob7
  12. [思维导图学习五] 思维导图在企业培训中的应用[转]
  13. HiTool烧写Hi3536操作记录
  14. 云安全联盟CCSK认证获得CDM网络防御全球奖
  15. 视频教程-思科CCNP专题系列⑨:交换机安全-思科认证
  16. mysql导入数据库报错:ERROR 1840 (HY000) at line 24: @@GLOBAL.GTID_PURGED can only be set when @@GLOBAL.GTID_
  17. Apache Tomcat JServ漏洞验证测试(CNVD-2020-10487 CVE-2020-1938)
  18. 微信小程序高德地图获取当前定位
  19. c++中关于二分查找的函数
  20. (ISC)2官方中国CISSP授权培训服务提供商正式启动

热门文章

  1. python系统自学_如何系统地自学python
  2. caj文件浏览器_caj文件怎么转换成pdf文件?试试这样操作,3步成功转换
  3. java jai create 方法_使用JAI扩展Java Image的功能
  4. mysql客户端版本太低_windows一机多装mysql,5.5低版本+5.8高版本
  5. 计算机地址码特点,电脑摇头灯的地址码的设定问题你必须要注意的
  6. Ubuntu下安装cmake,配置ITK 和 SimpleITK, VTK(已测试可执行)
  7. Petrozavodsk Winter Camp, Warsaw U, 2014, A The Carpet
  8. java中static详解
  9. 产品经理应该干些啥?
  10. 鼠标移动时,光标相对于对象的位置