全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

微信小程序 setData使用方法及常用错误解决办法

微信小程序 setData使用方法及常用错误解决办法

最近在弄微信小程序,类似于共享单车用来练练手,基本原理就是小程序发送经纬度给服务器,服务器从数据库中检索经纬度附近的单车传给小程序。

就在这里。。没错就是这里,传回来的值是以jsonarray格式传过来的。
我需要将jsonarray进行解析获取经纬度,ID等车辆信息,然后赋值给小程序地图上的mark,一般我的思路时直接用个for循环给每个mark进行赋值然后再Setdata一下就ok,

结果没想到小程序setData()设置数组对象的某个元素的属性时根本没用。。。。。

然后百度一会儿找到了方法   https://www./article/111691.htm

最近在使用微信小程序的setData时,遇到了以下问题。如下:

官网文档在使用setData()设置数组对象的某个元素的属性时,是这么使用的:

Page({
 data: {
  array: [{text: 'init data'}],
 },
 changeItemInArray: function() {
  this.setData({
   'array[0].text':'changed data'
  })
 }
})

使用了 ‘array[0].text' : ‘changed data' 这样的值。但在实际使用中,我们对数组的中的某个元素的设置是动态的。即 我们通常应该是‘array[‘+index+'].text' : ‘changed data' ,其中index应该是一个动态的数字。但显然,这样是无法使用在对象的key中的。

所以,我只能使用了一个变通的方法。如下:

var param = {};
var string = "array["+index+"].text;
param[string] = 'changed data';
that.setData(param);

这个每个属性都需要来一次。。。

不知道是我没找到更好的方法还是怎样,我的强迫症都出来了。。

下面就是我的代码。。。

 markers: {
   iconPath: "/picture/bike.png",
   id: 0,
   latitude: 23.099994,
   longitude: 113.324520,
   width: 50,
   height: 50
  }

这是markers类结构,我为了赋值写了这么多。。

for(var i = 0; i < res.data.length; i++){
       // that.data.markers[i].id=i;
        // mark.id=i;
       var param = {};
       var string = "markers["+i+"].id";
       param[string] = res.data[i].Bike_id;       
        that.setData(param);


       var string="markers["+i+"].iconPath";
       param[string] ="/picture/bike.png";
       that.setData(param);


       var string = "markers["+i+"].latitude";
       param[string] = res.data[i].BIKE_latitude;       
        that.setData(param);
     


       var string = "markers["+i+"].longitude";
       param[string] = res.data[i].BIKE_longitude;       
        that.setData(param);




        var string = "markers["+i+"].width";
       param[string] = 50;       
        that.setData(param);


        var string = "markers["+i+"].height";
       param[string] = 50;       
        that.setData(param);
        /* that.setData({
        markers:[{
   iconPath: "/picture/bike.png",
   id: 0,
   latitude: 23.099994,
   longitude: 113.324520,
   width: 50,
   height: 50
        }]
       })*/
       }
     //   console.log(res.data[1])
       var markk=that.data.markers;
       that.setData({markers:markk})

最后还必须setData一下,不然地图不会刷新。。

如果QT瞬间弄好,真的麻烦。。。。。。。。。。。。。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# 微信小程序  # setData  # 小程序  # setDate常见错误  # 详解小程序中h5页面onShow实现及跨页面通信方案  # 微信小程序实现传递多个参数与事件处理  # 微信小程序学习笔记之跳转页面、传递参数获得数据操作图文详解  # 微信小程序页面间值传递的两种方法  # 微信小程序使用navigateTo数据传递的实例  # 微信小程序教程系列之页面跳转和参数传递(6)  # 微信小程序在其他页面监听globalData中值的变化  # 微信小程序Page中data数据操作和函数调用方法  # 微信小程序获取用户信息的两种方法wx.getUserInfo与open-data实例分析  # 微信小程序跨页面传递data数据方法解析  # 是一个  # 这是  # 使用了  # 这么多  # 但在  # 我没  # 希望能  # 然后再  # 写了  # 我只能  # 谢谢大家  # 弄好  # 类似于  # 解决办法  # 数据库中  # 还必须  # 会儿  # 官网  # 基本原理  # 图上 


相关文章: 在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  建站主机SSH密钥生成步骤及常见问题解答?  建站之星如何保障用户数据免受黑客入侵?  专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?  巅云智能建站系统:可视化拖拽+多端适配+免费模板一键生成  c++怎么用jemalloc c++替换默认内存分配器【性能】  小自动建站系统:AI智能生成+拖拽模板,多端适配一键搭建  网站制作公司排行榜,抖音怎样做个人官方网站  如何将凡科建站内容保存为本地文件?  如何选择最佳自助建站系统?快速指南解析优劣  简单实现Android验证码  建站主机如何选?高性价比方案全解析  建站之星安装后如何配置SEO及设计样式?  深圳网站制作培训,深圳哪些招聘网站比较好?  ,sp开头的版面叫什么?  上海网站制作网站建设公司,建筑电工证网上查询系统入口?  浙江网站制作公司有哪些,浙江栢塑信息技术有限公司定制网站做的怎么样?  建站之星多图banner生成与模板自定义指南  东莞市网站制作公司有哪些,东莞找工作用什么网站好?  建站之星安装提示数据库无法连接如何解决?  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  如何在宝塔面板中创建新站点?  h5网站制作工具有哪些,h5页面制作工具有哪些?  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  建站主机空间推荐 高性价比配置与快速部署方案解析  Swift中switch语句区间和元组模式匹配  ,石家庄四十八中学官网?  如何快速生成凡客建站的专业级图册?  网站制作软件有哪些,制图软件有哪些?  如何通过建站之星自助学习解决操作问题?  制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?  猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?  建站之星如何实现PC+手机+微信网站五合一建站?  建站之星官网登录失败?如何快速解决?  C++如何编写函数模板?(泛型编程入门)  如何在香港服务器上快速搭建免备案网站?  TestNG的testng.xml配置文件怎么写  建站之星价格显示格式升级,你的预算足够吗?  自助网站制作软件,个人如何自助建网站?  建站主机选购指南:核心配置与性价比推荐解析  股票网站制作软件,网上股票怎么开户?  如何在Windows虚拟主机上快速搭建网站?  如何快速搭建个人网站并优化SEO?  如何通过宝塔面板实现本地网站访问?  江苏网站制作公司有哪些,江苏书法考级官方网站?  SQL查询语句优化的实用方法总结  专业网站建设制作报价,网页设计制作要考什么证?  如何用好域名打造高点击率的自主建站?  网站app免费制作软件,能免费看各大网站视频的手机app?  广东企业建站网站优化与SEO营销核心策略指南 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。