蚂蚁F2Chart折线图踩坑(串图,滑动跳闪)

近期公司需要做一个产品净值和收益率走势的曲线图功能,通过点击按钮可以展示近三月,近6月,近一年以及成立以来的走势图,其中遇到一个比较奇怪的问题:当手指在曲线上滑动查看净值、收益率时,会跳闪出现其他时段的曲线,后来分析原因是canvas每次画图,之前的数据没有清除干净,使用F2Chart自带的chart.clear()和chart.destory()都没有效果,于是在每次点击按钮画图前清除掉旧的canvas,代码如下:

//HTML部分
<div id="mychartParent">
    <canvas id="mychart" class="chart"></canvas>
<div>


//VUE的methods部分,每次点击按钮时先清除旧的canvas,再利用F2chart执行画图操作
draw(){
    let parent = document.getElementById('mychartParent')
    let dom = document.createElement('canvas');
    let mychart = document.getElementById('mychart')

    parent && parent.removeChild(document.getElementById('mychart'));
    dom.id = 'mychart'
    dom.className = 'chart'
    parent && parent.appendChild(dom);
    mychart && mychart.setAttribute('style',"width:100%;height:'250px'")

    //以下为F2Chart数据处理及画图部分,略过
    //...
    //..
    //.
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要用 Taro + F2 实现蚂蚁财富基金净值走势图,可以按照以下步骤进行: 1. 首先安装 Taro 和 F2,可以使用 npm 进行安装:`npm install -g @tarojs/cli` 和 `npm install f2` 2. 创建一个 Taro 项目:`taro init myApp` 3. 在 Taro 项目中引入 F2: 在 app.js 中添加以下代码: ```javascript import F2 from '@antv/f2/lib/core'; import '@antv/f2/lib/geom/'; import '@antv/f2/lib/geom/line'; import '@antv/f2/lib/geom/point'; import '@antv/f2/lib/scale/'; import '@antv/f2/lib/scale/time-cat'; import '@antv/f2/lib/component/'; import '@antv/f2/lib/component/guide/'; import '@antv/f2/lib/interaction/'; import '@antv/f2/lib/coord/polar'; import '@antv/f2/lib/geom/interval'; // 在 App 类的 config 中添加以下代码 plugins: { f2: { version: '2.3.15', global: 'F2', entry: 'https://gw.alipayobjects.com/os/antfincdn/f2/${version}/f2.js', }, }, ``` 4. 在页面中使用 F2 绘制基金净值走势图: 在页面中引入 F2: ```javascript import F2 from '@/plugins/f2'; ``` 然后在页面中使用 F2 绘制基金净值走势图: ```javascript import React, { Component } from 'react'; import F2 from '@/plugins/f2'; export default class FundChart extends Component { componentDidMount() { const chart = new F2.Chart({ id: 'myChart', pixelRatio: window.devicePixelRatio, }); const data = [ { date: '2019-01-01', value: 1.23 }, { date: '2019-01-02', value: 1.24 }, { date: '2019-01-03', value: 1.25 }, { date: '2019-01-04', value: 1.26 }, { date: '2019-01-05', value: 1.27 }, { date: '2019-01-06', value: 1.28 }, { date: '2019-01-07', value: 1.29 }, ]; chart.source(data, { date: { type: 'timeCat', mask: 'MM-DD', range: [0, 1], }, value: { tickCount: 5, min: 1.2, }, }); chart.axis('date', { label: function label(text, index, total) { const textCfg = {}; if (index === 0) { textCfg.textAlign = 'left'; } else if (index === total - 1) { textCfg.textAlign = 'right'; } return textCfg; }, }); chart.axis('value', { label: function label(text) { return { text: Number(text).toFixed(2), }; }, }); chart.line().position('date*value'); chart.point().position('date*value'); chart.render(); } render() { return ( <View> <Canvas className='my-chart' canvasId='myChart' /> </View> ); } } ``` 5. 将 Taro 项目编译成原生 APP: 可以使用 Taro 的 `taro build` 命令将 Taro 项目编译成原生 APP。具体步骤可以参考 Taro 官方文档:https://taro-docs.jd.com/taro/docs/react-native%E5%BC%80%E5%8F%91%E6%B5%81%E7%A8%8B

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值