初始状态如下:
当我在开发工具的调试器的 AppData 里把「中国」和其他选项的位置交换一下,例如把「中国」和「美国」换一下,就会变成下面这样:
我仅仅是交换了位置,但「美国」就自动选中了。这时候看 AppData 里的状态,「美国」是没有选中的。所以实际的状态没有和视图同步。
代码如下:
< checkbox-group bindchange = "checkboxChange" > < label class = "checkbox" wx:for = "{{items}}" wx:key = "{{item.value}}" > < template is = "checkbox" data = "{{...item}}" /> </ label > </ checkbox-group > < template name = "checkbox" > < checkbox wx:key = "{{item.value}}" value = "{{name}}" checked = "{{checked}}" />{{value}} </ template > |
是在官方的 checkbox 代码片段的基础上改的,只是把 checkbox 放在了 template 里。
如果我在 template 的 data 属性里这样 data="{{item.checked}}" 的话是不会自动选中的,但是这样 data="{{...item}}" 传就会有上面的问题。
虽然知道避免的办法,但还是想知道原因是什么?
测试了下,没有复现调换位置复选的情况
请问你是把已选中的选项与非选中的选项交换吗?我身边几个同事都有一样的现象
尝试多次改变该选项的位置,未复现问题,真机以及工具表现一致。你的工具的版本是?还是需要什么复现步骤?
工具版本是 1.02.1811290 复现步骤是:初始状态只有「中国」是选中的,然后在工具的 AppData 面板里通过拖动的方式来更换顺序,这时候就会复现。或者在 AppData 面板里直接把「中国」这一项删除,也能复现。 还有请问你是用了我提供的代码片段吗
按照步骤,还是没有复现,是不是你的代码片段,这个是你写的,这个很轻易看得出来吗?
现象与步骤可以看这里 https://i.loli.net/2018/12/07/5c09e5c54d718.gif