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;
},