微信小程序

微信小程序自组对象注意事项

11-29 14:32

适用于此类场景:

初始在data中定义了一组或多组多维对象,还有一个或多个数组,程序运行时,动态把这些对象和数组拼起来,组合一个新的多维数组,举一个简单的例子,如下图

小程序对象介绍.png


新组成的对象,渲染数据没有任何问题,但若用在交互过程中有极大隐患。

容易出现的问题:修改某个最底层元素的值,最后的结果是整个对象中,同级并且key相同的value都被修改。


举个例子说明:在上面的代码中,要修改:Tmp['AA']['aa']['mm'] 的值,即使准确锁定到这个元素中,但结果是,只要底层的key是“mm”,均被修改。


解决办法:

存在这个问题,是因为新对象的不同元素中,同时使用“Obj”了对象做为子元素,在尝试创建好新对象后,仅修改“Obj”对象内的某个值时,新对象的值也被修改。

那么可以得出结论,这种修改可能是“改地址”级别的。


所以要解决这种问题,最好是动态创建新对象时,子对象每次也要重新生成,这样可以保证每个看上去虽然相同,但却出自不同之手。

小程序自组对象.png


简单的一个小问题,了解之后可以少走很多弯路,节省开发时间。


微信小程序
大潇博客 版权所有 Copyright ©2016~2025
京ICP备17004217号-6  合作QQ:284710375
天玺科技