picker 在手机上不显示选择项

发布于 7 年前作者 qiangang8912 次浏览最后编辑 7 年前来自 ask

微信小程序的picker 在手机上调试点击不出现选择项,选择项是从数据库加载出来了,在开发工具可以显示。

不知道是不是代码写错还是其他原因。

9 回复
xia31
xia311 楼6 年前

简单来说就是从数据库获取一个对象数据 把他放在picker 上,因为是异步请求 他先运行了加载的方法 后获取到数据 导致picker  没有加载出数据,这个怎么解决

guiying67
guiying672 楼6 年前

不好意思,打错字,应该是两次获取数据,onLoad和onReady调用时机相近,可以只使用一个。这是题外话。

你给的例子太复杂,我这边没法运行复现。麻烦你使用一个最简单的场景,或者确认一下参数类型是否正确。

wenyong
wenyong3 楼6 年前

逻辑上是支持异步设置数据的。你确定setData数据的类型和picker属性要求一致吗?

jiangyang
jiangyang4 楼6 年前

另外为什么要在onLoad的onReady中两侧获取数据? 什么意思啊? 这两个方法加载数据会有问题吗?

WXOPEN Club 内容图片 WXOPEN Club 内容图片
bdeng
bdeng5 楼6 年前
WXOPEN Club 内容图片

麻烦你也慢下这个帖,其实问题一样

fang16
fang166 楼6 年前

手机上是否“打开调试”?

yanshi
yanshi7 楼6 年前

请提供semesterNameList的完整结构,写一个能复现问题的最简单的例子。另外为什么要在onLoad的onReady中两侧获取数据?

juan67
juan678 楼6 年前

测试手机是红米note2 ,微信基础库版本 1.4.0

wxml:

         <view class=“weui-cell__bd”>

                    <picker bindchange=“bindSemesterNameChange” value=“{{semesterNameList[index].SemesterId}}” range=“{{array}}” name=“semesterId”>

                        <view class=“weui-select weui-select_in-select-after”>{{semesterNameList[index].SemesterName}}</view>

                    </picker>

                </view>

js:

读取数据

  data: {

    semesterNameList: ‘’,

    array: ‘’,

    index: ‘0’

  },

  onLoad: function (options) {

    wx.showLoading({

      title: ‘加载中’,

    })

    var that = this;

    GetSemesterList(that);

  },

赋值

 onReady: function () {

    var that = this;

    GetPickerSemester(that);

  },

  bindSemesterNameChange: function (e) {

    this.setData({

      index: e.detail.value

    })

  }

gangzhong
gangzhong9 楼6 年前

请提供一下出现问题的机型和微信版本,并提供能复现问题的简单代码示例。