记小程序的picker组件中多列选择器的一个坑

在小程序官方文档中,picker组件有个mode=multiSelector的选项,
在官方提供的三级选择器中,效果很棒,也很好用!
然而在实际工作中,中间的一个小插曲,让我很是angry!
exprience:
我写的是一个二级选择器
第一列为狗狗的体型:
[{name: '大'}, {name: '中'}, {name: '小'}];
第二列为 狗狗的体型大中小 对应的狗狗种类名称:
[{name: '拉布拉多'}, {name: '蝴蝶犬'}, {name: '泰迪'}...];
实现逻辑也并没有什么难度;

然而却在每次滑动第一列的时候,第二列的第一个选项莫名其妙冒出来一个
“”澳大利亚牧羊犬“”
(这个 ’澳大利亚牧羊犬‘ 是请求回来的众多选项中的一个选项,位置在数据的中间位置,也不是第一个,但是为什么每次都是多出这个讨厌的数据!), 移动第二次多出两个,移动N次,第二列上面就unshift出几个,然而console.log(第二列此时应该显示的数据);是正确的,这就尴尬了。。。

最终费了一番功夫才发现问题的所在!


原来是因为后端中传的所有狗的类别中,这个’澳大利亚牧羊犬出现过两次!‘,虽然出现的位置,id等其他属性都不一样,但偏偏这个name值一样。
。。。。------。。。。


以后再出现类似的问题,不能反反复复在那里推理自己的逻辑,都把自己推晕了,思路要清晰,逻辑正确了,就要从其他地方找问题,别陷入死循环,太浪费时间!
微信的这个我不知道叫做坑,还是该叫做bug,也许小程序的意思是同一个值在多列选择器中只能出现一次吧。。。

你可能感兴趣的:(记小程序的picker组件中多列选择器的一个坑)