孙英俊
孙英俊
  • 发布:2019-10-24 16:12
  • 更新:2022-04-25 09:38
  • 阅读:4893

【报Bug】picker组件设置默认值为空,无法选中第一个选项

分类:uni-app

详细问题描述

[内容]
picker组件 单选模式,设置默认值为空 或小于0的数,不能直接点击确认选中第一个选项

重现步骤

[步骤]
picker组件,mode = selector(只在这种情况下),value绑定值为空字符串、null、undefined 或者小于0的数值,此时点击picker,展示选择器面板,不做任何操作,直接点击确认按钮

[结果]
不会触发change事件,数值没有进行任何改变,除非拖动选择器,触发滚动事件,切换选项,再切回来

[期望]
修改change事件触发机制,支持设置空值(不选中),并且能够在点击确认按钮时,选中当前位置的值

IDE运行环境说明

[HBuilder 或 HBuilderX。如果你用其他工具开发uni-app,也需要在此说明]

[IDE版本号] HBuilderX 2.3.6.20191021-alpha

2019-10-24 16:12 负责人:无 分享
已邀请:
孙英俊

孙英俊 (作者)

@DCloud @DCloud_HB_关平 @DCloud_heavensoft @DCloud_HB_WKP @DCloud_App_Array

  • 孙英俊 (作者)

    这个问题可以麻烦回复下吗

    2019-11-01 11:51

hedge_hog

hedge_hog - hello world

我现在也碰见这个问题了,只有change的时候才触发change事件,请问你找到解决办法了吗?

  • hedge_hog

    我想到了一个比较笨的方法,就是在 picker 内容的第一项里再添加一项,比如我添加的就是 ‘请选择’ 这样可以间接避免以上的问题

    2020-06-15 13:54

明天更好的

明天更好的

用过apicloud,确实收费项目特别多,组件也不是很好用,问题很多

dj码农

dj码农

设置index为-1,下拉的时候进行判断,如果等于-1,则将index赋值为0,这样下拉直接点击完成就会默认选择第一个。

//下拉选择机型
Change:function(e){
this.index = e.detail.value;
if(this.index==-1){
this.index=0;
}

            },  

或者在picker标签追加一个@click事件,当我们点击的时候直接赋值index=0
click(){
if(this.index==-1){
this.index=0;
}
}

1***@qq.com

1***@qq.com

这个问题我也遇到了,解决方法为
if(!e.detail.value){
e.detail.value = 0
}
这样直接选择就会选中第一个

该问题目前已经被锁定, 无法添加新回复