微信小程序setData内如何使用变量做指针?

查看:224
本文介绍了微信小程序setData内如何使用变量做指针?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

我要用listenSwiper听取swiper的变化,改变被选中的swiper-item之前和之后的swiper-item的样式。我用的代码如下:

  listenSwiper: function(e) {
    var prev = 'items['+(e.detail.current-1)+'].x'
    var now = 'items['+(e.detail.current)+'].x'
    var next = 'items['+(e.detail.current+1)+'].x'
    console.log(prev)
    console.log(now)
    console.log(next)
    this.setData({
      prev:12,
      now:0,
      next:-12,
    })
  },

这是不会成功是因为微信小程序自动把prev、now、next这三个变量当作了string来处理。也就是所并不是修改了:

this.setData({
  'items[0].x':12,
  'items[1].x':0,
  'items[2].x':-12,
})

而是添加了:

this.setData({
  'prev':12,
  'now':0,
  'next':-12,
})

有没有什么好办法来解决这个问题/挑战?

另外我刚刚发现了……微信小程序根本不允许变量啊。

解决方案

 listenSwiper: function(e) {
    let updataData = {};
    updateData['items['+(e.detail.current-1)+'].x'] = 12;
    updateData['items['+(e.detail.current-1)+'].x'] = 0;
    updateData['items['+(e.detail.current-1)+'].x'] = -12;
    this.setData(updataData);
  },

这篇关于微信小程序setData内如何使用变量做指针?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆