picker默认值问题
发布于 5 年前 作者 guiying34 4348 次浏览 来自 问答
  • 当前 Bug 的表现(可附上截图)
  • 预期表现
  • 复现路径
  • 提供一个最简复现 Demo

问题一:

Page({
  data: {
    heightindex: 0,
    height:165,
    heightArray: [],
  },
  onLoad: function () {
    
    //处理身高
    var har=[];
    var hstart= 130;
    var hend = 220;
    for (var i = hstart; i < hend;i++){
      har.push(i);
    }
    this.setData({
      heightindex:8,
      heightArray: har,
      height: har[10]
    })
 
  }

html

<picker  class="item-right" bindchange="bindHeightChange" data-id='{{heightArray[heightindex].id}}' value="heightindex" range="{{heightArray}}">
    {{height}} CM
    </picker>

设置默认值heightindex=8,即身高是140,

显示正常,但点击触发picker弹框,默认选中的值 仍然是heightindex=0的值,而不是140

问题二:


picker的默认值为什么只能设置index呢,比如身高数组,一个人的默认升高假如是165,直接设置165就行,但为甚么要直接通过165所在的index设置呢,

2 回复

index写的确实有问题,已经改了,但问题是为什么picker只能设置index,这个很坑啊,

组件里面的heightindex没解析出来吧,你没带{{}}

至于为什么是使用下标设置而不是直接设置值,考虑过在数组里面只有下标是唯一的吗

回到顶部