使用mint-ui的picker出现的bug

在使用 picker 中,点击选择框弹起来,然后点击确定按钮调用 getValues() 获取到当前的选中的值,这时候我再次点击选择选择按钮,选择框弹起来,这时候再点击确定默认选择当前被选中的,发现 getValues() 获取的值是undefind;(两次选择相同的内容时,第二次的getValues()取到的值是undefind)
因为我的页面中有需要很多picker选择框,所以我是只初始化了一个picker,然后根据不同的事件来改变slots里的values的值,这样想着会有利于性能;
clipboard.png

不知道大家有没有遇到这种坑,找了半天还是不知道怎么解决,谢谢大家了!
data数据中的picker数据如下:
data(){
return{
popupVisible:false,//picker组件显示和关闭
slots: [{defaultIndex:0}],//picker选择框数据
}
}
picker组件代码如下:

    <mt-popup v-model="popupVisible" position="bottom">
        <div class="picker-toolbar">  
            <span class="mint-datetime-cancel" @click="cancle">取消</span>  
            <span class="mint-datetime-confirm" @click="select">确定</span>  
        </div>  
        <mt-picker ref='pickerObj' :slots="slots" valueKey="name"></mt-picker>
    </mt-popup>

激活picker方法如下:

    career(){//职业类型选择框
            this.popupVisible=true;//激活picker组件
            this.currentPicker='careerName';//当前picker内容变量
            this.currentPickerId='careerNameId';//当前picker内容id变量
            this.currentShow='isCareer';//
            this.slots=[{
                  defaultIndex:0,
                  flex: 1,
                  values: this.$utils.careerStyle,//职业类型
                  className: 'slot1',
                  textAlign: 'center'
            }];
        }

picker上select(点击确定)方法如下:

    select(){
            var pickerVal=this.$refs.pickerObj.getValues();
            console.log(this.$refs.pickerObj.getValues());
            this.popupVisible=false;
        }
阅读 5.8k
1 个回答

<mt-picker :slots="slots" @change="onValuesChange"></mt-picker>这部分用@change事件,

//用istemp保存选好的值
onSexChange(picker, values) {
        this.isTemp = values[0];
 },

然后

select(){//获得这个值
    console.log(this.istemp);
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题