MPComponent / mpvue-picker

基于 mpvue 框架的小程序选择控件,支持单列,多列,联动。
MIT License
172 stars 77 forks source link

关于设置默认值的建议 #16

Closed kechen123 closed 5 years ago

kechen123 commented 6 years ago

在使用过程中发现设置默认值在第一次显示时无效,之后才可以正确显示出来。 mpvuePicker.vue文件中show()函数中执行了initPicker(); 建议把this.initPicker(this.pickerValueArray);这段代码放到 onLoad(){ this.initPicker(this.pickerValueArray); }, 这样设置默认值就可以成功

KuangPF commented 6 years ago

测试了下,当数据量比较大的时候设置默认值的确无效。如果放在 onLoad 里面,当数据量比较大的时候也会遇见相同的问题,这是一个性能问题。参考issues14 不知道你方便提供一下你使用该组件时的数据不,即 pickerValueArray

kechen123 commented 5 years ago

如果放在onLoad里面,当数据量比较大的时候也会遇见相同的问题,这是一个性能问题。参考issues14 不知道你方便提供一下你使用该组件时的数据不,即pickerValueArray

设置无效是在第一次显示,通常是在编辑信息返显时,页面加载完成就把默认值设置上,弹出层时默认值无效,关闭后再打开会把默认值设置上。应该是必现的问题。我看了源码中是在显示时初始化的组件,我的解决方式是在设置默认值时手动调用了初始化initpicker函数,最开始我把show函数中的initpicker删除掉了,但是之后好像引发了一个bug,我又加上了。最后就是在又设置默认值的地方手动调用了一次初始化的函数

7obe commented 5 years ago

组件应该加一个监控,如果pickerValueDefault变化时,应该触发initPicker函数