如何在Reactjs组件中使用vanilla javascript?

时间:2018-06-12 07:43:28

标签: javascript reactjs

我正在使用chartist.js,而我正在使用reactjs组件中的chartist。 我指的是http://gionkunz.github.io/chartist-js/examples.html#simple-pie-chart

chartist.js:

var Chartist = {
    version:'0.9.5' 
}

(function (window, document, Chartist) {

var options = {
  labelInterpolationFnc: function(value) {
    return value[0]
  }
};

var responsiveOptions = [
  ['screen and (min-width: 640px)', {
    chartPadding: 30,
    labelOffset: 100,
    labelDirection: 'explode',
    labelInterpolationFnc: function(value) {
      return value;
    }
  }],
  ['screen and (min-width: 1024px)', {
    labelOffset: 80,
    chartPadding: 20
  }]
];

})();

Reactjs组件:

import React, { Component } from 'react';

var data = {
  labels: ['Bananas', 'Apples', 'Grapes'],
  series: [20, 15, 40]
};

showPieChart(data){
     new Chartist.Pie('.ct-chart', data, options, responsiveOptions);
}

class Chart extends Component {

  render(){
    return(
      <div>
          <div className="center">
              {showPieChart}
          </div>
      </div>

    )}

}

export default Chart;

网页上没有显示任何内容。如何在react组件中访问vanilla javascript。

1 个答案:

答案 0 :(得分:2)

你的问题有点误导,可以用两种方式解释。

<强>#1。如果您正在询问如何将Chartist库与React 集成,请按以下步骤操作:

有一个包装库,已经为我们做了:https://www.npmjs.com/package/react-chartist

您可以按照以下方式使用它(例如从他们的回购中获取):

import React from 'react';
import ReactDOM from 'react-dom';
import ChartistGraph from 'react-chartist';

class Pie extends React.Component {
  render() {

    var data = {
      labels: ['W1', 'W2', 'W3', 'W4', 'W5', 'W6', 'W7', 'W8', 'W9', 'W10'],
      series: [
        [1, 2, 4, 8, 6, -2, -1, -4, -6, -2]
      ]
    };

    var options = {
      high: 10,
      low: -10,
      axisX: {
        labelInterpolationFnc: function(value, index) {
          return index % 2 === 0 ? value : null;
        }
      }
    };

    var type = 'Bar'

    return (
      <div>
        <ChartistGraph data={data} options={options} type={type} />
      </div>
    )
  }
}

ReactDOM.render(<Pie />, document.body)

<强>#2。如果您一般都在询问如何将其他库集成到React 中,那么我建议您查看官方的React文档,因为有一个关于该主题的非常好的教程 - Integrating with Other Libraries

因此,如果您不想使用包装器库(react-chartist),那么您也可以检查其主要组件。这是一个很好的起点(遵循React建议),以了解如何创建自己的包装器:https://github.com/fraserxu/react-chartist/blob/master/index.js