收藏
回答

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

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




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

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


请问问题到底出在哪?


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

最后一次编辑于  2019-03-15
回答关注问题邀请回答
收藏

1 个回答

  • 卢霄霄
    卢霄霄
    2019-03-15

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

    2019-03-15
    有用 1
    回复 10
    • 2019-03-15


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

      2019-03-15
      回复
    • 2019-03-15

      更邪门的地方来了……

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

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

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

      2019-03-15
      回复
    • 卢霄霄
      卢霄霄
      2019-03-15回复

      有其他地方修改过 allDishes不

      2019-03-15
      1
      回复
    • 2019-03-15回复卢霄霄

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

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


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

      2019-03-15
      回复
    • 卢霄霄
      卢霄霄
      2019-03-15回复

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

      2019-03-15
      1
      回复
    查看更多(5)
登录 后发表内容