收藏
回答

data数据赋值的问题

使用场景:选择优惠券

问题:在当页数据优惠券列表(coupon_list)选择优惠券后,将选择的单个优惠券计算出折扣减免的价格后赋值给一个新的变量(picker_coupon),不改变优惠券列表(coupon_list)。再次选择该优惠券,同样的逻辑计算出价格后,发现最终的价格是在折扣价格上再折扣。反复试了几遍,发现在计算折扣价格时,优惠券列表(coupon_list)中的数据也改变了,但是代码中并没有使用setData向优惠券列表赋值。这是什么情况?

效果视频:http://image.diankaime.com/WeChat_20191117205834.mp4

数据改变视频:http://image.diankaime.com/WeChat_20191117205943.mp4


最后一次编辑于  11-17
回答关注问题邀请回答
收藏

1 个回答

  • o0o有脾气的酸奶
    o0o有脾气的酸奶
    11-17

    a.getPrice()的代码呢

    11-17
    赞同
    回复 6
    • 比尔盖雨
      比尔盖雨
      11-18
      a.getPrice()中的代码没有使用coupon_list变量。如果把图片中箭头所指“单个数据修改值”的地方注释,就不会出现问题,但是也无法计算出优惠券折扣所减金额。请问这是什么现象?
      11-18
      回复
    • o0o有脾气的酸奶
      o0o有脾气的酸奶
      11-18回复比尔盖雨
      在var goodsPrice = ... 下面console.log一下
      console.log(a.data.goodsInfo.price, a.data.buyNum, goodsPrice)
      11-18
      回复
    • 比尔盖雨
      比尔盖雨
      11-19回复o0o有脾气的酸奶
      第一张图是点击两次后输出的调试结果;
      第二张图是getPrice()方法中的代码;
      11-19
      回复
    • 比尔盖雨
      比尔盖雨
      11-19回复o0o有脾气的酸奶
      找到了问题所在。https://www.jianshu.com/p/57539212a70f参考了这个帖子的方法,了解了js数组的引用,希望对你也有帮助,兄弟。
      11-19
      回复
    • o0o有脾气的酸奶
      o0o有脾气的酸奶
      11-19回复比尔盖雨
      那说明picker_coupon.money变化了,也就是a.data.coupon_list里有变化了,什么地方更新了这个coupon_list吗
      11-19
      回复
    查看更多(1)
问题标签