收藏
回答

pick-view 上划bug

使用

picker-view  

picker-view-column


做省市区级联,只能向下滑动(滚动), 向上滑动(滚动)就会触发

enablePullDownRefresh  

enablePullDownRefresh

设置是需要一些刷新


我以前不知道是自己没测出来还是就有这个问题



最后一次编辑于  2018-09-29
回答关注问题邀请回答
收藏

6 个回答

  • 韬々
    韬々
    置顶回答2018-09-30

    已复现,确实有点问题。感谢反馈,我们这边会尽快修复。

    2018-09-30
    赞同
    回复
  • 社区技术运营专员-灵芝
    社区技术运营专员-灵芝
    2018-09-29

    请提供出现问题的机型和微信版本,以及能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

    2018-09-29
    赞同
    回复 3
    • 一路向东 ⃢👁一👁⃢
      一路向东 ⃢👁一👁⃢
      2018-09-29

      调试基础库 2.0.9  机型: 中兴, 小米mix2s  微信版本: 6.7.2


      刷新

      enablePullDownRefresh: true



      HTML 结构

      <picker-view class="picker_box" indicator-class="selected" value="{{cityValue}}" bindchange="cityChange">
              <picker-view-column>
                <view wx:for="{{provices}}" wx:key='*this'>{{item.label}}</view>
              </picker-view-column>
              <picker-view-column>
                <view wx:for="{{urban}}" wx:key='*this'>{{item.label}}</view>
              </picker-view-column>
              <picker-view-column>
                <view wx:for="{{area}}" wx:key='*this'>{{item.label}}</view>
              </picker-view-column>

            </picker-view>


      pick-view的处理   主要是在原始数据添加全部选项

      cityChange(e) {
            let val = e.detail.value
            var t = this.cityValue // 城市数据坐标 0 0 0
            const allCity = this.allCity
            if (val[0] !== t[0]) {
              let urban = []
              // 市处理
              val[val[0], 0, 0]
              allCity[val[0]].children.forEach((val, index) => {
                urban.push({
                  'value': val.value,
                  'label': val.label
                })
              })
       
              const addAll = [{
                value: '',
                label: '全部'
              }]
              this.urban = [...addAll, ...urban]
              this.cityValue = [e.detail.value[0], 0, 0]
              // 区处理
              let area = []
               
              const allArea = [{
                value: '',
                label: '全部'
              }]
              this.area = [...allArea, ...area]
       
              this.cityValue = [e.detail.value[0], 0, 0]
              this.$apply()
            }
            if (val[1] !== t[1]) {
              let area = []
              const addAll = [{
                value: '',
                label: '全部'
              }]
       
              val[val[0], val[1], 0]
              allCity[val[0]].children[val[1] - 1].children.forEach((val, index) => {
                area.push({
                  'value': val.value,
                  'label': val.label
                })
              })
              this.area = [...addAll, ...area]
              this.cityValue = [e.detail.value[0], e.detail.value[1], 0]
              this.$apply()
            }
            if (val[2] !== t[2]) {
              this.cityValue = e.detail.value
            }
          },


      数据



      效果


      感谢~~~~

      2018-09-29
      回复
    • 社区技术运营专员-灵芝
      社区技术运营专员-灵芝
      2018-09-29回复一路向东 ⃢👁一👁⃢

      麻烦按正确格式提供代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

      2018-09-29
      回复
    • Ivey
      Ivey
      2018-09-29

      代码片段

      wechatide://minicode/6o4kZNmb712G

      2018-09-29
      回复
  • carrykingdow
    carrykingdow
    01-02

    请问 官方大佬,有没有修复此问题了?

    01-02
    赞同
    回复
  • 海纶
    海纶
    2018-10-05

    我也出现了这个问题 一个页面 设置了enablePullDownRefresh  =  true   又实用了pick-view 向下滑动 会两个都会触发   请解决下 谢谢!!!!!

    2018-10-05
    赞同
    回复
  • 一路向东 ⃢👁一👁⃢
    一路向东 ⃢👁一👁⃢
    2018-09-29

    代码片段

    wechatide://minicode/6o4kZNmb712G


    2018-09-29
    赞同
    回复
  • Ivey
    Ivey
    2018-09-29

    我也出现了这个问题,在同时用到picker-view和enablePullDownRefresh时,往下滑动的操作时很难触发picker-view,或者2个都被触发

    我用的是官方的demo

    <view>
      <view style="width:100%;height:100vh;background:#333;color:#fff;" catchtouchmove='preventTouchMove'>{{year}}年{{month}}月{{day}}日</view>
      <picker-view indicator-style="height: 50px;" style="width: 100%; height: 300px;position:fixed;bottom:0;left:0;background:#fff;" value="{{value}}" bindchange="bindChange" catchtouchmove='preventTouchMove'>
        <picker-view-column>
          <view wx:for="{{years}}" style="line-height: 50px">{{item}}年</view>
        </picker-view-column>
        <picker-view-column>
          <view wx:for="{{months}}" style="line-height: 50px">{{item}}月</view>
        </picker-view-column>
        <picker-view-column>
          <view wx:for="{{days}}" style="line-height: 50px">{{item}}日</view>
        </picker-view-column>
      </picker-view>
    </view>
    const date = new Date()
    const years = []
    const months = []
    const days = []
     
    for (let i = 1990; i <= date.getFullYear(); i++) {
      years.push(i)
    }
     
    for (let i = 1; i <= 12; i++) {
      months.push(i)
    }
     
    for (let i = 1; i <= 31; i++) {
      days.push(i)
    }
     
    Page({
      data: {
        years: years,
        year: date.getFullYear(),
        months: months,
        month: 2,
        days: days,
        day: 2,
        value: [9999, 1, 1],
      },
      bindChange: function (e) {
        const val = e.detail.value
        this.setData({
          year: this.data.years[val[0]],
          month: this.data.months[val[1]],
          day: this.data.days[val[2]]
        })
      },
      preventTouchMove(e){}
    })
    {
        "enablePullDownRefresh": true
    }




    2018-09-29
    赞同
    回复