重启小程序后,新元素无论 push 或是 unshift 都会同时更新原数组第一个元素内容!!
【前提】第一次使用小程序数据更新正常,异常出现在刷新小程序后。
1、首先小程序 onLaunch 时读取缓存数据,并存储在 globalData 命名为 storage。
2、app.js 有公共方法(updatData)将 新元素 push(unshift) 到 storage。
3、按理说 元素应该如第一次使用时,正常将元素添加到 storage 的最后面(或者最前面)!!神奇的是,无论是 push 还是 unshift 方法都会改变原始 storage 数组中的第一个元素!!!!
断点调试无数次,编辑器和真机亦是如此。
深度怀疑这其中有个隐藏BUG!
排查的问题代码(位置:app.js ):
运行打印如下:【注意】添加的新元素对象内容是完全跟历史 storage数组中的元素是不同的,所以不会进入更新内容的条件,只会 push 新元素。但打印的结果却并不是这样