收藏
回答

使用官方刷新组件,苹果无法反弹stopPullDownRefresh



苹果手机下拉刷新后,出现了顶部回弹问题,安卓不会,如何解决???


self.dataLayer(function (isData) {
      console.log("返回的数据 isData=>", isData);
      wx.hideNavigationBarLoading() //完成停止加载
      wx.stopPullDownRefresh() //停止下拉刷新
 
      if (isData) {
        ++(self.data.page);
        self.setData({
          page: page
        });
      }
    });


最后一次编辑于  2018-06-04  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

5 个回答

  • snailPenG
    snailPenG
    2018-06-04

    试下 加个apply


    2018-06-04
    赞同
    回复 1
    • 同步
      同步
      2018-06-04

      用的是原生的,不是wepy ,apply 怎么加???

      2018-06-04
      回复
  • 张大臀
    张大臀
    2018-06-05

    同样遇到了  哪里有问题呢

    2018-06-05
    赞同
    回复 1
    • 同步
      同步
      2018-06-06

      wechatide://minicode/Ln8jMYmy68ZX


      你试试,我发现做延时处理结束刷新,效果变好了。

      2018-06-06
      回复
  • 黄思程
    黄思程
    2018-06-06

    是指下拉刷新后,调用stopPullDownRefresh没有生效?

    麻烦给个相关的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html),我们定位下问题

    2018-06-06
    赞同
    回复 4
    • 同步
      同步
      2018-06-06

      wechatide://minicode/Ln8jMYmy68ZX


      已发现wx.request苹果要做延时处理结束刷新






      2018-06-06
      1
      回复
    • 黄思程
      黄思程
      2018-06-07

      你提供的代码片段看起来没问题的?

      2018-06-07
      回复
    • all cats
      all cats
      2018-06-08回复黄思程

      因为原代码已经加了settimeout延迟。。。就没问题了

      2018-06-08
      回复
    • 同步
      同步
      2018-06-11回复黄思程

      嗯!加了延时后可以了,不加延时,网络很好的时候,就会出现。

      2018-06-11
      回复
  • 成哥是个好人
    成哥是个好人
    2018-06-11

    可能是刷新时触发wx.showToast的原因,下拉时自带loading 动画的功能的,测试行


    2018-06-11
    赞同
    回复
  • Harvey
    Harvey
    2018-07-28

    我也碰到同样的问题,下拉后不弹回,我觉得用

    setTimeout不是解决问题的办法,而且我试了也不行,既然我已经把 wx.stopPullDownRefresh放入

    success: function (res) {

    //停止PullDown


    }中间 ;

    就表示调用成功后才stopPullDownRefresh,

    在Jquery中我在成功执行请求后应该没有问题,为什么还要延时执行。

    jquery在获取data后执行,完全是没问题。


    $.post("InsertDefcode",$("form#DefForm").serialize(), function(data) { 
           
                         if(data=="ok"){
             
                    toastr.success("缺陷添加成功!","Hi")
             
                                 
                         }else if(data=="ex"){
                            location.href = "login.html";
                          
                         }else{
                            toastr.warning("缺陷/方案添加失败!","Hi")
                         
            Showlist();                 
                 
                },"text").error(function() {toastr.warning("添加失败!","Hi") });   


    下面小程序代码

    onPullDownRefresh: function () {
       wx.showNavigationBarLoading()
       wx.showLoading({
         title: '加载中',
       })
       var that = this
       var that1 = this
       wx.request({
         url: 'https://xxxxxxxxxxxxxx', //仅为示例,并非真实的接口地址
         data: {
           loc: 'room2'
         },
         header: {
           'content-type': 'application/json' // 默认值
         },
         success: function (res) {
         
           console.log(res.data[0].update)
           wx.hideLoading();
           that.setData({
             msg: res.data[0].update
           });
           that.ecComponent = that.selectComponent('#mychart-dom-bar');
           that.ecComponent.init((canvas, width, height) => {
             // 获取组件的 canvas、width、height 后的回调函数
             // 在这里初始化图表
             const chart = echarts.init(canvas, null, {
               width: width,
               height: height
             });
             setOption(chart, res.data[0].tem, '温度', '°C');
     
             // 将图表实例绑定到 this 上,可以在其他成员函数(如 dispose)中访问
             that.chart = chart;
     
             // 注意这里一定要返回 chart 实例,否则会影响事件处理等
             return chart;
           });
     
           // 获取组件
           that1.ecComponent = that1.selectComponent('#mychart-dom-bar1');
           that1.ecComponent.init((canvas, width, height) => {
             // 获取组件的 canvas、width、height 后的回调函数
             // 在这里初始化图表
             const chart1 = echarts.init(canvas, null, {
               width: width,
               height: height
             });
             setOption(chart1, res.data[0].hum, '湿度', '%');
     
             // 将图表实例绑定到 this 上,可以在其他成员函数(如 dispose)中访问
             that1.chart1 = chart1;
     
             // 注意这里一定要返回 chart 实例,否则会影响事件处理等
             return chart1;
     
           });
         //  setTimeout(()=>{
          //   wx.stopPullDownRefresh;
           //  wx.hideNavigationBarLoading()
     
        //   },500)
            wx.stopPullDownRefresh;
           wx.hideNavigationBarLoading()
     
         }
       })
     
     
       console.log("n11111111111111g");
     
     
     }


    无法回弹,我的手机是OPPO  R11+   ,但是可以在点一下页面后马上回弹。

    2018-07-28
    赞同
    回复 1
    • 同步
      同步
      2018-07-31

      他在这个请求中出现fail也是可能的,不能单写到success上来吧?

      至于加了延时依然无法解决的情况,我也没有想到好的办法了。

      2018-07-31
      回复