收藏
回答

求助:地狱嵌套之后数据被清零了……

最近在学习写一个外卖的小程序,用户点击支付的时候是这样的代码:




myData[0]是我虚拟的数据——鱼香肉丝的点餐情况。

但是我发现,最开始从allDishes获得的myData[0]的数据是客户点击支付的时候鱼香肉丝点了多少数量,这段代码明明没有任何改动数据的地方,但是到了地狱嵌套的最里层,myData[0]的amount数量居然被清零了……


请问问题到底出在哪?


另外,因为showModal会堆积起来,为了能顺利执行这几步流程,就只好地狱嵌套,这段逻辑又该怎么优化呢?

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

1 个回答

  • 卢霄霄
    卢霄霄
    03-15

    console.log里的 myData[0] 改成 JSON.parse(JSON.stringify(myData[0])),看看打印出来的是啥

    03-15
    赞同 1
    回复 10
    • 辣炒年糕麻辣烫牛肉拉面小火锅
      辣炒年糕麻辣烫牛肉拉面小火锅
      03-15


      结果似乎还是一样的……关键问题是我什么对数据的操作都没有,为啥会被清零了我很不了解……Orz这难道是地狱嵌套的BUG么?

      03-15
      回复
    • 辣炒年糕麻辣烫牛肉拉面小火锅
      辣炒年糕麻辣烫牛肉拉面小火锅
      03-15

      更邪门的地方来了……

      我在每个嵌套的地方都放了一个console.log:

      这个结果真是让我出乎意料啊……

      也就是说扫描二维码之后清空了数据内容……这是为啥……

      03-15
      回复
    • 卢霄霄
      卢霄霄
      03-15回复辣炒年糕麻辣烫牛肉拉面小火锅

      有其他地方修改过 allDishes不

      03-15
      1
      回复
    • 辣炒年糕麻辣烫牛肉拉面小火锅
      辣炒年糕麻辣烫牛肉拉面小火锅
      03-15回复卢霄霄

      到了这步就是客人点好餐结账了,也就是说gotoPay里面取到的this.data.allDishes是最终数量了,除非我这段代码里有修改,否则绝对不会有变动。

      但奇怪的就是这里,明明什么都没操作,allDishes内容却变了……


      你说这会不会是多层嵌套后有什么机制导致的……Orz

      03-15
      回复
    • 卢霄霄
      卢霄霄
      03-15回复辣炒年糕麻辣烫牛肉拉面小火锅

      肯定是写的有问题。。能做个代码片段吗

      03-15
      1
      回复
    查看更多(5)