美文网首页
victory-native 的图表使用

victory-native 的图表使用

作者: 幻影形風 | 来源:发表于2019-04-16 18:11 被阅读0次
  1. android 下面遇到bug,饼图的项点击事件不响应。
    具体可见https://github.com/FormidableLabs/victory-native/issues/96
    的解决方案。原先的代码,在ios下可正常工作。
    原先代码如下:
    <VictoryPie
    // events={[
    // {
    // target: 'data',
    // eventHandlers: {
    // onClick: this.onSliceClick
    // }
    // }
    // ]}
    events={[
    {
    target: 'data',
    eventHandlers: {
    onPress: () => {
    alert('onclick')
    }
    }
    }
    ]}
    style={{
    labels: {
    fill: 'white',
    stroke: 'none',
    fontSize: 15,
    fontWeight: 'bold'
    }
    }}
    data={[
    { x: '<5', y: 6279 },
    { x: '5-13', y: 9182 },
    { x: '14-17', y: 5511 },
    { x: '18-24', y: 7164 },
    { x: '25-44', y: 6716 },
    { x: '45-64', y: 4263 },
    { x: '≥65', y: 7502 }
    ]}
    innerRadius={70}
    labelRadius={100}
    colorScale={[
    '#D85F49',
    '#F66D3B',
    '#D92E1D',
    '#D73C4C',
    '#FFAF59',
    '#E28300',
    '#F6A57F'
    ]}
    />
    解决后代码如下:
    在原有的VictoryPie外层包一层Svg标签即可解决,后可响应点击事件了。
    import Svg from 'react-native-svg'
    <Svg
    width={400}
    height={400}
    viewBox="0 0 400 400"
    style={{ width: '100%', height: 'auto' }}
     <VictoryPie
       // events={[
       //   {
       //     target: 'data',
       //     eventHandlers: {
       //       onClick: this.onSliceClick
       //     }
       //   }
       // ]}
       events={[
         {
           target: 'data',
           eventHandlers: {
             onPress: () => {
               alert('onclick')
             }
           }
         }
       ]}
       style={{
         labels: {
           fill: 'white',
           stroke: 'none',
           fontSize: 15,
           fontWeight: 'bold'
         }
       }}
       data={[
         { x: '<5', y: 6279 },
         { x: '5-13', y: 9182 },
         { x: '14-17', y: 5511 },
         { x: '18-24', y: 7164 },
         { x: '25-44', y: 6716 },
         { x: '45-64', y: 4263 },
         { x: '≥65', y: 7502 }
       ]}
       innerRadius={70}
       labelRadius={100}
       colorScale={[
         '#D85F49',
         '#F66D3B',
         '#D92E1D',
         '#D73C4C',
         '#FFAF59',
         '#E28300',
         '#F6A57F'
       ]}
     />
    
    </Svg>
  2. 适配的最终解决方案
    其外层的chart通过props传进来。
    export default class ChartContainter extends React.Component {
    constructor (props) {
    super(props)
    }
    render () {
    if (Platform.OS == 'ios') {
    return (
    <View>
    {this.props.chart}
    </View>
    )
    } else if (Platform.OS == 'android') {
    return (
    <Svg
    width={this.props.width}
    height={this.props.height}
    viewBox={'0 0 ' + this.props.width + ' ' + this.props.height}
    style={{ width: '100%', height: 'auto' }}
     {this.props.chart}
    
    </Svg>
    )
    }
    }
    }

相关文章

  • victory-native 的图表使用

    android 下面遇到bug,饼图的项点击事件不响应。具体可见https://github.com/Formid...

  • 三(一)图表常量

    图表常量 描述图表各种属性的常量分为以下几组: 图表事件类型使用图表时发生的事件; 图表时间表标准内建周期; 图表...

  • Axure加载图表

    Axure加载图表,图表模式使用的是JSchart的免费版本。1、登录JSchart官网下载图表模板,http:/...

  • Pyecharts Practice

    1 快速开始 1.1 绘制图表 1.2 使用options配置项 1.3 渲染图片 1.4 使用主题 2 图表类型...

  • canvas图表(1) - 柱状图

      原文地址:canvas图表(1) - 柱状图  图表一般使用到svg或canvas,其中canvas图表在处理...

  • 动态图表的制作

    相比常规图表,动态图表更有利于数据的展示,下面来学习动态图表的制作。 一、使用Vlookup函数来制作动态图表 1...

  • Vue echarts

    安装 echarts 图表组件实现组件主要思路 安装 echarts 图表组件 如果经常使用图表,则可以封装一个 ...

  • ali F2(移动端数据展示) 入门

    F2 安装 基本使用 Chart 创建图表实例 Chart.source 添加数据 声明图表类型 图表类型poin...

  • 用highcharts做网站图表,只要3步

    WHY 为啥使用highcharts做图表? 免费个人网站等非商业使用是免费的 功能稳定,强大地图,股票等图表不在...

  • 快速搞定PPT图表——饼图

    日常工作汇报的PPT中通常会使用到图表,PPT中提供多种图表格式供选择,有柱形图、饼图、散点图等多种,图表的使用既...

网友评论

      本文标题:victory-native 的图表使用

      本文链接:https://www.haomeiwen.com/subject/ubvuwqtx.html