小程序 setData 中的坑,真没想到原来还可以这么玩!

学习摸索 玖柒 3595℃ 0评论

最近这段时间在写微信小程序,有一个页面需要动态修改 data 中的数据,而这里似乎是个坑。

1、正常修改

正常修改很简单,当触发 change 事件时,数据和页面都会同时发生改变。这个也不用多说,很简单的例子。

2、如何修改对象中某个属性值

当你想把下面代码中 human 中的 height 的值改成 178 时,直接用 this.setData({human.height: 178}) 会报错。

  1. human: {  
  2.     name: '张三',  
  3.     height: 170  
  4. }  

这个时候可以先用字符串拼接属性名,然后用 [] 包裹起来,这里画上,待会可能要考。

  1. var height = 'human.height';  
  2. this.setData({  
  3.     [height]: 178  
  4. })  

3、如何动态修改数组中某个值

动态修改 list[index].height 的值,和上面的例子差不多。

  1. list: [  
  2.     {  
  3.         height: 170  
  4.     },{  
  5.         height: 175  
  6.     },{  
  7.         height: 178  
  8.     }  
  9. ]  

先用字符串拼接,然后再更改,其中 index 是动态获取的数字。

  1. var height = 'list[' + index + '].height';  
  2. this.setData({  
  3.     [height]: 178  
  4. })  

4、 那个...

其实好像挺简单,果然还是我太菜,菜是原罪...

转载请注明:我是玖柒后 » 小程序 setData 中的坑,真没想到原来还可以这么玩!

喜欢 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址