uniapp 运行到微信开发者工具,数组数据不同步显示

 console.log数组有数据,但appdata中数组为空

选择器选择数据,h5,app显示正常,小程序不同步显示数据,log可显示数组数据,appdata为空。

还有一种可能性:使用了组件,由父组件传递的数据,不可在子组件内修改

运行在微信开发者工具,显示数据以appdata为准:

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) {
				// console.log(str)
				that.$set(data, key2, val);
			} else {
				if (!data[key2]) {
					that.$set(data, key2, {});
				}
			}
			data = data[key2];
		})
	});
},

调用函数:

selectConfirmFun: function(e) {
	// 保存选择器传递的数据,label:显示数据
	let value = e[0].value;
	let str = e[0].label;
	let index=this.selectType
	var obj = {};
	obj.name = index;
	obj.value = str;
	// #ifdef MP
	//查找该数据是否存在,存在则更新数组value值,不存在插入数据
	let a = this.svalueList.findIndex(item => item.name == index);
	if(a>-1){
		this.svalueList[a].value = str;
	}else{
		this.svalueList.push(obj);
	}
	//小程序将数据放置到svalueList中
	this.setData({
		svalueList: this.svalueList
	});
	// #endif
	
	// #ifndef MP
	//除小程序外,将数据str放到svalueList数组,索引selectType
	this.$set(that.svalueList, this.selectType, str)
	// #endif
		
		this.infolist[this.selectType] = value;

},

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值