小程序 checkbox 动态渲染数据延迟

2018-12-12  本文已影响0人  一许青衫一

背景

最近在做公司的一个小程序项目,其中一个需求是在进入一个页面A,调用接口获取网点列表siteList。然后进行遍历处理,给每个网点对象添加checked属性(表示用户是否选中),我的目的是想做到就是,对于选中的网点,样式表现的不一样,例如文字换个颜色等等。
并且能够根据用户实时选择的,进行样式变换。也就是复选的功能,我直接用了小程序的checkbox组件。很好,很不错。但是随之而来的带来一个问题,当我进入页面A后,并且对siteList处理,加上了checked属性。但是,样式并没有变化,控制台查看wxml,checked属性已经添加到每个网点的信息里面了,但是chekced==true的网点样式没有一点点改变。

尝试

我无意中尝试了,在控制台的AppData中,随意将一个网点的chekced属性,点击改变,万万没想到,这一改变,原本checked==true的网点样式全变了,变成了他们应该具有的模样。
总结起来就是,checkbox的动态数据渲染延迟,换句话就是,好比文档上的例子,只有这个数据时静态的,chekced属性,本来就有的,后续不会变化的。那么根据checked的值,进行样式的改变,是正常的。
但是如果,这个数据是动态的,你需要后面再给它添加checked属性,那么checkbox是不会实时响应到checkde==true的。他需要你再次动作进行触发他。

可能的猜想

google和文档,发现checkbox的数据是单向绑定的,我觉得可能与这个有关,无法做到实时的数据响应。

解决办法

自己用<view>写了一个类似复选框的,关键点,在于选中布尔值取反。

上一篇下一篇

猜你喜欢

热点阅读