ant-design-mobile-Tabs纵向滑动触发切换tab问题解决方式

1、issues

在这里插入图片描述
在使用这个组件的时候同样遇到了这个问题,也就是纵向滑动的时候会触发到tab切换事件,研究过许多办法,都没有解决,最终决定将原有组件的滑动去掉,自己去实现一个滑动切换tab效果。

2、

给相应的标签注册Touch事件,通过触摸事件开始、移动、结束可以自己控制左右滑动间距,去减少上下滑动所带来的误触。

 onTouchStart = e => {
    this.startX = e.touches[0].clientX;
  };

  onTouchMove = e => {
    this.endX = e.touches[0].clientX;
  };

  onTouchEnd = () => {
    const { isCreateShow } = this.state;
    if (!isCreateShow) {
      return;
    }
    // 获取滑动范围
    if (this.startX > -1 && this.endX > -1) {
      const distance = Math.abs(this.startX - this.endX);
      if (distance > 120) {
      
        const { initialPage } = this.state;
        if (this.startX > this.endX) {
          if (initialPage !== 3) {
            const newPage = initialPage + 1;
            this.setState({
              initialPage: newPage,
            });
            this.handleTabChange('', newPage);
          }
        } else if (initialPage !== 0) {
          const newPage = initialPage - 1;
          this.setState({
            initialPage: newPage,
          });
          this.handleTabChange('', newPage);
        }
      }
    }

    this.startX = -1;
    this.endX = -1;
  };

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值