Awesome
react-highcharts
Highcharts 6.x.x component for react. For highcharts 5.x.x use v. 13.0.0
Demos
react-highcharts | react-highcharts/more | react-highcharts/highstock | react-highcharts/highmaps
You can also see Code for the demo and run demo locally
Installation
npm install react-highcharts --save
Licensing
The React-Highcharts repository itself is MIT licensed, however note that this module is dependent on Highcharts.js. For commercial use, you need a valid Highcharts license.
Usage
Webpack/Browserify
npm install react-highcharts highcharts react --save
const React = require('react');
const ReactDOM = require('react-dom');
const ReactHighcharts = require('react-highcharts'); // Expects that Highcharts was loaded in the code.
const config = {
/* HighchartsConfig */
};
ReactDOM.render(<ReactHighcharts config = {config}></ReactHighcharts>, document.body);
Optional after-render callback
const afterRender = (chart) => { /* do stuff with the chart */ };
<ReactHighcharts config = {config} callback = {afterRender}></ReactHighcharts>
Passing properties to the wrapping DOM element
<ReactHighcharts config = {config} domProps = {{id: 'chartId'}}></ReactHighcharts>
Accessing Highcharts API After Render
For access to methods & properties from the Highcharts library you can use ReactHighcharts.Highcharts
.
For example, the Highcharts options are available via ReactHighcharts.Highcharts.getOptions()
.
Highcharts provides an API for manipulating a chart after the initial render. See the Methods and Properties in the documentation. Here's how you access it:
class MyComponent extends React.Component {
componentDidMount() {
let chart = this.refs.chart.getChart();
chart.series[0].addPoint({x: 10, y: 12});
}
render() {
return <ReactHighcharts config={config} ref="chart"></ReactHighcharts>;
}
}
Limiting Highchart Rerenders
Rerendering a highcharts graph is expensive. You can pass in a isPureConfig
option to the ReactHighcharts
component, which will keep the highcharts graph from being updated so long as the provided config
is referentially equal to its previous value.
There is also neverReflow
property.
Rendering on the server with node
See this recipe
Using highmaps (demo)
const ReactHighmaps = require('react-highcharts/ReactHighmaps');
Using highstock (demo)
const ReactHighstock = require('react-highcharts/ReactHighstock')
Using highcharts modules/add-ons like exporting, data, etc. (demo)
Use highcharts-more
npm package.
const ReactHighcharts = require('react-highcharts')
require('highcharts-more')(ReactHighcharts.Highcharts)
You can find the full list here
Passing Highcharts instance manually
const ReactHighcharts = require('react-highcharts').withHighcharts(ReactHighstock)
For Contributors
Running tests
Run npm test
Running demo
git clone https://github.com/kirjs/react-highcharts.git
cd react-highcharts && npm install
npm run demo
Point your browser at http://localhost:8080