收藏
回答

请教一些关于动态拼接变量的写法问题?

在页面调用js方法时,传了一个在页面上拼接的参数 例如 data-item = "list[{{listIndex}}].children[{{childrenIndex}}]"

js 接收时,例如 itemStr = "list[0].children[0]"

请问如何获取data中的值呢

我的目的是,通过方法修改item并保存,由于小程序不完全支持双向绑定,所以就像传一个字符串作为setData方法的key去渲染

目前我的处理如下,可以实现,但是觉得有点绕,想看看有木有更好的方法。

<view wx:for="{{lst}}">
    <view wx:for="{{item.children}}" wx:for-item="tag" wx:for-index="tagIndex" 
          data-item="{{tag}}" data-itemname="list[{{index}}].children[{{childrenIndex}}]" 
          data-listname="{{lst}}" bindtap="handleClick">
    </view>
</view>
                  ​
handleClick(event){
  let item = event.currentTarget.dataset.item   //通过传参
  let itemname = event.currentTarget.dataset.itemname
  let listname = event.currentTarget.dataset.listname
  let lst = this.data[listname] //由于listname只是简单的一个字符串因此可以这样获取
  //let item = this.data[itemname]  //开始是这样想的,但仔细一看就会发现有问题,通过实践发现写法不行
  对item进行操作:xxxx
  对list进行操作:xxxx
    
  this.setData({
    [itemname]:item,
    [listname]:lst
  })
}


最后一次编辑于  2021-04-30
回答关注问题邀请回答
收藏

2 个回答

  • Cjiang
    Cjiang
    2021-04-29

    https://developers.weixin.qq.com/miniprogram/dev/framework/view/component.html#%E5%85%AC%E5%85%B1%E5%B1%9E%E6%80%A7

    2021-04-29
    有用
    回复 1
    • 山林修
      山林修
      2021-04-30
      谢谢您的回复,可能是我表达的不够清晰,已修改文章内容
      2021-04-30
      回复
  • 青团社
    青团社
    2021-04-29
    <view wx:for="{{xxx}}" data-item="list[{{listIndex}}].children[{{childrenIndex}}]" bindtap="handleClick"></view>
    


    handleClick(e) {
      const {dataset: {item}} = e.currentTarget
      console.log(item)
    }
    


    2021-04-29
    有用
    回复 6
    • 山林修
      山林修
      2021-04-29
      非常感谢您的回答,可能是我表达的不够清晰,事实上我想获取的数据是在data中list[0].children[0]的数据
      相当于是
      2021-04-29
      回复
    • 青团社
      青团社
      2021-04-29回复山林修
      还是你想要这样的?
      2021-04-29
      回复
    • 山林修
      山林修
      2021-04-29回复青团社
      我的目的是,通过方法修改item并保存,由于小程序不完全支持双向绑定,所以就想传一个字符串作为setData方法的key去渲染,目前我的处理是这样的,可以实现,但觉得绕了一圈,想看看有没有更好的方法
      2021-04-29
      回复
    • 青团社
      青团社
      2021-04-29回复山林修
      那就只有你这种方法了
      2021-04-29
      回复
    • 山林修
      山林修
      2021-04-29回复青团社
      好的谢谢!麻烦您了
      2021-04-29
      回复
    查看更多(1)
登录 后发表内容