关于微信小程序setData与data数据渲染的一点点小细节以及解决方法

    我们都知道小程序的数据渲染使用this.setData({被渲染的数据});来实现,最近使用的时候出现了一个很奇妙的问题,数据的串联式更改。

  • 我想说的问题,到底是什么呢,参考一下这个博文,微信小程序setData对data数据的影响,下面用我的话来描述一下这个问题,
    关于微信小程序setData与data数据渲染的一点点小细节以及解决方法
        我和博主想的一个意思,我们只想拿到arr里面的数据,但不希望更改里面的数据因此使用let {arr}=this.data(也就是arr=this.data.arr)读取里面的数据,好,我们把它丢给一个变量temp,通过修改temp来进行数据处理,这样子就“不会修改原数据了”,代码截图如下:
    关于微信小程序setData与data数据渲染的一点点小细节以及解决方法

    原博主只是给出了问题,提醒大家注意,其实仔细想一下,你会发现这个问题是很容易理解的,因为数组的存储的就是地址,这样temp=arr,等价于将原来的数据交给了temp变量,这联想到C语言的数组排序不需要返回值就很好理解了,因此,使用的时候还是应该小心。
     那么,到底怎么来解决这一个问题呢?因为我们是前端,存在后端,可以利用后端数据请求来实现。
    方法如下:
1.将数组写到记事本里面,将文件类型改成json,如下所示:
关于微信小程序setData与data数据渲染的一点点小细节以及解决方法
补充代码:
OnLoad函数部分:
关于微信小程序setData与data数据渲染的一点点小细节以及解决方法
onclick函数部分:
关于微信小程序setData与data数据渲染的一点点小细节以及解决方法
    上传完毕后代码运行结果如下:
关于微信小程序setData与data数据渲染的一点点小细节以及解决方法
    大功告成!