首页 > 编程语言 >微信小程序taro-react-echarts使用dataZoom问题

微信小程序taro-react-echarts使用dataZoom问题

时间:2023-07-07 15:55:05浏览次数:44  
标签:taro 微信 chart echarts handler dataZoom touch event

taro微信小程序中使用 taro-react-echarts 展示图表数据,因为数据量大,需要使用dataZoom来左右滑动图表。

实现效果

解决

首先在echarts的options中添加

xAxis:...
yAxis:...
dataZoom: [
  {
    type: 'inside',
    start: 0,
    end: data.time?.length > 20 ? (20 / data.time?.length) * 100 : 100,
    filterMode: 'none'
  },
],
series:...

发现在开发者工具和真机上,均不能滚动,没反应!!!
之后查看 taro-react-echarts 包的代码,修改如下
修改文件 taro-react-echarts/dist/index.js

function touchStart({ chart, event }) {
    if (chart && event.touches.length > 0) {
        const touch = event.touches[0];
        const handler = chart.getZr().handler;
        handler.dispatch('mousedown', {
            zrX: touch.x,
            zrY: touch.y,
            preventDefault: () => { },
            stopImmediatePropagation: () => { },
            stopPropagation: () => { },
        });
        // handler.dispatch('mousemove', {
        //     zrX: touch.x,
        //     zrY: touch.y,
        //     preventDefault: () => { },
        //     stopImmediatePropagation: () => { },
        //     stopPropagation: () => { },
        // });
        handler.processGesture(wrapTouch(event), 'start');
    }
}
function touchMove({ chart, event }) {
    if (chart && event.touches.length > 0) {
        const touch = event.touches[0];
        const handler = chart.getZr().handler;
        // handler.dispatch('mousedown', {
        //     zrX: touch.x,
        //     zrY: touch.y,
        //     preventDefault: () => { },
        //     stopImmediatePropagation: () => { },
        //     stopPropagation: () => { },
        // });
        handler.dispatch('mousemove', {
            zrX: touch.x,
            zrY: touch.y,
            preventDefault: () => { },
            stopImmediatePropagation: () => { },
            stopPropagation: () => { },
        });
        handler.processGesture(wrapTouch(event), 'start');
    }
}

代码行数见截图

之后就可以开心的左右滑动啦~~

修改node_modules中的文件后,其他小伙伴直接yarn来安装依赖是不行的哟,可参考以下文章来保留对依赖项的修改。
使用 patch-package 修改第三方模块

标签:taro,微信,chart,echarts,handler,dataZoom,touch,event
From: https://www.cnblogs.com/ZerlinM/p/17535207.html

相关文章

  • 如何通过企业微信或者公众号实现im聊天
    需求说明对接企业微信或者其他渠道,会需要配置一个消息地址流程1.用户在企业微信聊天框发送一个消息2.企业微信会将消息推送到我们服务器大概格式为:应用id、用户openid、消息内容3.我们首先判断用户openid是否有绑定的对应客户,如果没有则通过应用appid和secrit获取token调......
  • 微信小程序开发-wx.saveFile把文件下载到哪里
    我们在使用微信小程序的API时wx.saveFile(OBJECT)一、电脑中可能大家要看一看使用小程序开发工具,具体把文件下载到了我们计算机的什么地方,以win10为例,下载到了如下路径:C:\Users\cuanboy\AppData\Local\微信web开发者工具\UserData\例如我保存了一个20210419.csv文件到电脑中......
  • 微信模板消息推送封装方法
    /***@explain*发送消息通知*@returnarray|mixed*@remark*获取到用户的openid之后可以判断用户是否有数据,可以直接跳过获取access_token,也可以继续获取access_token*access_token每日获取次数是有限制的,access_token有时间限制,可以存储到数据库7200s.7200s后access......
  • UniApp与微信小程序的异同点分析
    UniApp和微信小程序都是流行的移动应用开发框架,它们有一些相似之处,但也存在一些明显的异同点。在本篇博客中,我将对UniApp和微信小程序进行详细的异同点分析,并提供相关的示例代码。开发语言:微信小程序:使用WXML(类似于HTML)、WXSS(类似于CSS)和JavaScript进行开发。UniApp:支持使用Vue.js......
  • 微信昵称乱码-解决方案
    目录背景原因:解决方案:增量数据历史数据ps:背景网页授权拉取用户信息时昵称乱码原因:调接口时未设置字符集,默认使用的字符集是ISO-8859-1,该字符集不适合汉字和特殊字符原来的代码/***网页授权之拉取用户信息**@paramaccessToken网页授权token......
  • ios系统微信浏览器打开H5,调用接口status = 0失败的问题?
    最近写了一个很简单的小项目,以为不会有什么问题,今天突然说出问题了,说ios用户打开没有请求到数据。经测试,安卓,pc,都没有问题,只有ios出问题了。因为这次的涉及到时间,我以为ios时间处理上出问题了,仔细看了看,并不是,于是开启了漫长的寻找bug的过程。使用vConsole查看接口请求情况,发现......
  • 如何实现Java 实现微信聊天的具体操作步骤
    Java实现微信聊天微信是一款非常流行的社交聊天应用程序,让人们可以通过文字、语音、图片和视频等多种方式进行交流。本文将介绍如何使用Java编程语言实现一个简单的微信聊天应用。准备工作在开始编写代码之前,我们需要先安装Java开发环境。你可以从[Oracle官方网站](建立服务器......
  • 2023-07-06 微信开发者工具上传代码,在体验版查看时发现小程序的一些全局字体样式不生
    前言:在less中使用【@样式变量】如:@global_color:var(--global_color,red);问题描述:在开发工具中字体样式能正常显示,预览扫码到真机上也能显示字体颜色,结果上传代码到了提样版就不行了,样式不生效。这里用到了一个var函数,“var()函数用于插入自定义的属性值,如果一个属性值在......
  • 微信公众号授权
    1.公众号后台配置授权域名比如(www.xiaozhu.com) 直接获取用户的openid前端created(){this.getCode();},methods:{getCode(){//APPID是公众号的appid//https://www.xiaozhu.com/index/test/get_openid授......
  • 微信小程序页面增加下拉刷新功能
     对应的json文件增加如下内容"enablePullDownRefresh":true,"onReachBottomDistance":50,"backgroundTextStyle":"dark","backgroundColor":"#6197FB" 2.对应的js增加函数onPullDownRefresh()和 onload是一个级别......