收藏
回答

scrollview下拉刷新在component中无法触发?

在一个页面中放了一个swiper,然后swiper-item中分别引用两个component,然后每个component使用了scrollview,然后按照官方代码无法在component中触发下拉刷新,但是直接写在页面中可以正常触发下拉刷新。请问下官方人员这个是bug么?

最后一次编辑于  2020-05-19
回答关注问题邀请回答
收藏

1 个回答

  • AKA. 皮卡超
    AKA. 皮卡超
    2020-05-19

    请提供代码片段

    2020-05-19
    有用
    回复 7
    • 揍锅
      揍锅
      2020-05-19
      const app = getApp() 
      var that 
      Component({ 
        /** 
         * 组件的属性列表 
         */ 
        properties: { 
          height: { 
            type: Number, 
            value: 0 
          } 
        }, 
       
        /** 
         * 组件的初始数据 
         */ 
        data: { 
          scrollH: 0, 
          triggered: false 
        }, 
        // 以下是旧式的定义方式,可以保持对 <2.2.3 版本基础库的兼容 
        attached: function () { 
          console.log('attached') 
          that = this 
          var contentH = that.properties.height - 90 / 750 * wx.getSystemInfoSync().windowWidth 
          that.setData({ 
            scrollH: contentH 
          }) 
        }, 
        pageLifetimes: { 
          //组件所在的页面被展示时执行 最低版本2.2.3 
          show: function () { 
            var contentH = that.properties.height - 90 / 750 * wx.getSystemInfoSync().windowWidth 
            that.setData({ 
              scrollH: contentH 
            }) 
            that.setData({ 
              triggered: true 
            }) 
          }, 
          //组件所在的页面被隐藏时执行 最低版本2.2.3 
          hide: function () { 
            console.log('页面被隐藏') 
          }, 
          //这个函数一般使用场景较少,了解就可以了  最低版本2.4.0 
          resize: function (size) { 
            console.log('页面尺寸变化') 
          } 
        }, 
       
       
        /** 
         * 组件的方法列表 
         */ 
        methods: { 
          onPulling(e) { 
            console.log('onPulling:', e) 
            that.setData({ 
              triggered: true 
            }) 
          }, 
       
          onRefresh() { 
            if (that._freshing) return 
            that._freshing = true 
            setTimeout(() => { 
              that.setData({ 
                triggered: false, 
              }) 
              that._freshing = false 
            }, 3000) 
          }, 
       
          onRestore(e) { 
            console.log('onRestore:', e) 
          }, 
       
          onAbort(e) { 
            console.log('onAbort', e) 
          } 
        } 
      })
      2020-05-19
      回复
    • 揍锅
      揍锅
      2020-05-19
      <scroll-view scroll-y style="width: 100%; height: {{height}}px;" refresher-enabled="{{true}}" refresher-threshold="{{100}}" refresher-default-style="white" refresher-background="lightgreen" refresher-triggered="{{triggered}}" bindrefresherpulling="onPulling" 
        bindrefresherrefresh="onRefresh" bindrefresherrestore="onRestore" bindrefresherabort="onAbort"> 
        <view wx:for="1234567" style="display: flex; height: 300px;"> 
          <image src="https://images.unsplash.com/photo-1565699894576-1710004524ba?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=1832&q=80"></image> 
        </view> 
      </scroll-view>
      2020-05-19
      回复
    • 揍锅
      揍锅
      2020-05-19
      这个是component中的js文件和布局文件
      2020-05-19
      回复
    • AKA. 皮卡超
      AKA. 皮卡超
      2020-05-19回复揍锅
      我去你不考虑别人的感受吗,这字符串还得自己去复制粘贴给你找问题?
      https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html
      2020-05-19
      回复
    • 揍锅
      揍锅
      2020-05-19
      不好意思了,之前没有用过这个代码分享的,刚分享了,麻烦帮忙看下,谢谢!https://developers.weixin.qq.com/s/RHGmLsmt7GhU
      2020-05-19
      回复
    查看更多(2)
登录 后发表内容
问题标签