【微信小程序 】 数据更新,视图无法更新时,使用setData()更新视图,并解决setData()赋值对象属性及数组问题

在Vue中,当我们对数据进行修改时,视图也会发生变化,微信小程序也提供的一样的功能,但是需要使用官方提供的setData()方法,如下:
Page({
  data: {
    isShow: false
  },
  changeStatus(){
    this.setData({isShow : true});
    console.log(this.data.isShow);
  }
})
上面的例子中isShow是直接作为子属性挂载到data上的,当我们在isShow 的上一级再加一个对象时,该如何修改数据呢,这样:
Page({
  data: {
    obj:{
	    isShow: false
    }
  },
  changeStatus(){
    this.setData({['obj.isShow']: true});      //写成this.setData({obj.isShow: true})会报错
    console.log(this.data.isShow);
  }
})
当我们要修改的类型是一个list时:
Page({
  data: {
    array: [{isShow:false},{isShow:false},{isShow:false}],
  },
  changeStatus: function() {
	var param = {};
	var str = "array["+index+"].isShow";     //index为下标
	param[str] = true;
	that.setData(param);
  }
})
如果觉得我的文章对你有帮助,欢迎关注我的blog

相关知识点

【Javascript】深入理解async/await的实现,Generator+Promise = Async/Await
【Javascript】深入理解this作用域问题以及new运算符对this作用域的影响
【Javascript】手写运算符new创建实例并实现js继承

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值