react-chartist中的onDraw事件

时间:2017-10-06 08:40:48

标签: reactjs events chartist.js

在另一个论坛中,我发现这段代码对我有用:

var chart = new Chartist.Bar('.ct-chart', {
  labels: ['Test', 'Long test', 'Very long test'],
  series: [[1, 5, 3]]
});

// Uncomment this line to test rendering without foreign objects
//chart.supportsForeignObject = false;

chart.on('draw', function(event) {
  // If the draw event is for labels on the x-axis
  if(event.type === 'label' && event.axis.units.pos === 'x') {
    // If foreign object is NOT supported, we need to fallback to text-anchor and event.width / 2 offset.
    if(!chart.supportsForeignObject) {
      event.element.attr({
        x: event.x + event.width / 2,
        'text-anchor': 'middle'
      });
    }
  }
});

用这解决的特殊问题并不重要。我的问题是我不使用new Chartist.Bar来声明一个新的图表组件,因为我使用的是反应图表:

<ChartistGraph
          data={graphData}
          options={graphOptions}
          type={type}
/>

所以我不能像在示例中那样对onDraw事件做出反应。 是否可以将函数绑定到onDraw事件?我试过这样的事情:

<ChartistGraph
          onDraw={e => onDrawHandler(e)}
          data={graphData}
          options={graphOptions}
          type={type}
/>

哪个不起作用。

1 个答案:

答案 0 :(得分:1)

使用listener道具:

<ChartistGraph
    listener={{
        draw: e => onDrawHandler(e)
    }}
    data={graphData}
    options={graphOptions}
    type={type}
/>

请参阅:https://github.com/fraserxu/react-chartist/issues/27