收藏
回答

预览图片时的bug


如上图所示,点击图片进行预览操作,第一次点击时,输出的每一个图片路径前都拼接了'aa/',但是第二次点击时,竟然第一次拼接的'aa/'还在,什么鬼,我又没有使用setData将goodsinfo.imgs重新赋值。按理讲,每次进来goodsimg[i] 都应该是没拼接‘aa/’的啊!

最后一次编辑于  2018-06-11  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

2 个回答

  • 一碗nina
    一碗nina
    2018-06-11

    你好,数组这样直接赋值是将数组的引用赋给了临时变量,所以对临时变量进行修改会使原数组发生改变

    2018-06-11
    赞同 2
    回复 1
    • 笑对人生xxs
      笑对人生xxs
      2018-06-11

      谢谢

      2018-06-11
      回复
  • Mr.5
    Mr.5
    2018-06-11

    58行改成 var goodsings = [...this.data.goodsinfo.imgs]
    试下 ,可能是赋值有问题

    2018-06-11
    赞同 1
    回复 3
    • 笑对人生xxs
      笑对人生xxs
      2018-06-11

      按你这样就可以,可是正常的赋值为什么会出现问题呢!

      2018-06-11
      回复
    • Mr.5
      Mr.5
      2018-06-11回复笑对人生xxs

      let a = ["aaa","bbb"]
      let b = a
      a[0] = "ccc"
      a[1] = "ddd"
      console.log(b)

      let a = ["aaa","bbb"]
      let b = [...a]
      a[0] = "ccc"
      a[1] = "ddd"
      console.log(b)
      你控制台运行下对比下两者区别, 操作a时会影响b, 主要还是数组赋值的问题,
      可以去网上看下js基本数据类型和引用数据类型的区别

      2018-06-11
      1
      回复
    • 笑对人生xxs
      笑对人生xxs
      2018-06-11回复Mr.5

      试了下,没想到js竟然是这种做法,谢了

      2018-06-11
      回复