收藏
回答

Only digits (0-9) can be put inside[],${}无法解决,求指点?

WXML文件是这样的

<view class="XXXwx:for="{{YY}}">

  <view class="xx1">{{item.Y1}}</view>

  <view class="xx2">{{item.Y2}}</view>

  <view class="xx3">{{item.Y3}}</view>

  <icon class="xx4wx:if="{{item.Y4}}" type="successsize="23"></icon>

  <icon class="xx4wx:else type="warnsize="23"></icon>

</view>

JS文件里这样写的

data: {

    name_Items:['XM1','XM2','XM3','XM4','XM5','XM6','XBR1','XBR2','XBR3','XBR4','XBR5','XBR6'],

    YY:[

      {Y1:'', Y2:0, Y3:0, Y4:false},

      {Y1:'', Y2:0, Y3:0, Y4:false},

      {Y1:'', Y2:0, Y3:0, Y4:false},

      {Y1:'', Y2:0, Y3:0, Y4:false},

      {Y1:'', Y2:0, Y3:0, Y4:false},

      {Y1:'', Y2:0, Y3:0, Y4:false},

      {Y1:'', Y2:0, Y3:0, Y4:false},

      {Y1:'', Y2:0, Y3:0, Y4:false},

      {Y1:'', Y2:0, Y3:0, Y4:false},

      {Y1:'', Y2:0, Y3:0, Y4:false},

      {Y1:'', Y2:0, Y3:0, Y4:false},

      {Y1:'', Y2:0, Y3:0, Y4:false}

    ],

  },

赋值语句是这么写的(注释中的语句是可以赋值成功的,但是放到for列表循环中就会报错)

onLoad: function (options) {

    // this.setData({

      //   'YY[0].Y1':this.data.name_Items[0],

      //   'YY[1].Y1':this.data.name_Items[1],

      //   'YY[2].Y1':this.data.name_Items[2],

      //   'YY[3].Y1':this.data.name_Items[3],

      //   'YY[4].Y1':this.data.name_Items[4],

      //   'YY[5].Y1':this.data.name_Items[5],

      // })

    var i = 0

    var length = this.data.name_Items.length

    for (let i = 0; i < length; i++{

      console.log(i)

      this.setData({

        ['YY[${i}].Y1']:this.data.name_Items[i],

      })

    }

  },

报错Error: Only digits (0-9) can be put inside [] in the path string: YY[${i}].Y1


回答关注问题邀请回答
收藏

1 个回答

  • 拾忆
    拾忆
    2022-05-11
     this.setData({
    
    
            [`YY[${i}].Y1`]:this.data.name_Items[i],
    
    
          })
    
    2022-05-11
    有用 1
    回复 1
    • Raul🇨🇳
      Raul🇨🇳
      2022-05-11
      我终于知道问题出在哪了,非常感谢。是`这个键,不是‘这个键
      2022-05-11
      回复
登录 后发表内容