picker 在手机上不显示选择项
发布于 6 年前 作者 qiangang 8756 次浏览 来自 问答

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

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

9 回复

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

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

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

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

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

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

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

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

测试手机是红米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

    })

  }

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

回到顶部