微信小程序 setData使用方法及常用错误解决办法
发布时间 - 2026-01-11 01:05:08 点击率:次微信小程序 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数据方法解析
# 是一个
# 这是
# 使用了
# 这么多
# 但在
# 我没
# 希望能
# 然后再
# 写了
# 我只能
# 谢谢大家
# 弄好
# 类似于
# 解决办法
# 数据库中
# 还必须
# 会儿
# 官网
# 基本原理
# 图上
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何撰写建站申请书?关键要点有哪些?
rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted
悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音
JavaScript中的标签模板是什么_它如何扩展字符串功能
Laravel Fortify是什么,和Jetstream有什么关系
JavaScript常见的五种数组去重的方式
如何批量查询域名的建站时间记录?
如何在建站宝盒中设置产品搜索功能?
高防网站服务器:DDoS防御与BGP线路的AI智能防护方案
Laravel怎么实现验证码(Captcha)功能
怎么用AI帮你为初创公司进行市场定位分析?
Android 常见的图片加载框架详细介绍
Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析
重庆市网站制作公司,重庆招聘网站哪个好?
微信小程序 canvas开发实例及注意事项
简历没回改:利用AI润色让你的文字更专业
标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?
使用Dockerfile构建java web环境
如何在 Pandas 中基于一列条件计算另一列的分组均值
JavaScript如何实现类型判断_typeof和instanceof有什么区别
制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?
如何实现javascript表单验证_正则表达式有哪些实用技巧
Laravel怎么定时执行任务_Laravel任务调度器Schedule配置与Cron设置【教程】
php结合redis实现高并发下的抢购、秒杀功能的实例
PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑
如何用免费手机建站系统零基础打造专业网站?
标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南
Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程
Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】
如何自定义建站之星模板颜色并下载新样式?
微信小程序 scroll-view组件实现列表页实例代码
怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?
如何快速生成可下载的建站源码工具?
如何快速打造个性化非模板自助建站?
*服务器网站为何频现安全漏洞?
郑州企业网站制作公司,郑州招聘网站有哪些?
如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程
头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?
Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】
Laravel Blade组件怎么用_Laravel可复用视图组件的创建与使用
Laravel如何使用模型观察者?(Observer代码示例)
Laravel storage目录权限问题_Laravel文件写入权限设置
香港服务器网站推广:SEO优化与外贸独立站搭建策略
详解阿里云nginx服务器多站点的配置
如何在万网主机上快速搭建网站?
Angular 表单中正确绑定输入值以确保提交与验证正常工作
Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案
Laravel如何处理文件下载请求?(Response示例)
php嵌入式断网后怎么恢复_php检测网络重连并恢复硬件控制【操作】
Laravel Blade模板引擎语法_Laravel Blade布局继承用法

