Π― ΠΏΠ΅ΡΠ΅ΠΏΡΠΎΠ±ΠΎΠ²Π°Π» Π²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅, ΡΡΠΎΠ±Ρ Highcharts ΡΠ°Π±ΠΎΡΠ°Π» Ρ ΠΈΠΌΠΏΠΎΡΡΠΎΠΌ Babel / Browserify / ES6. Π― ΠΏΠΎΠ»ΡΡΠ°Ρ ΠΎΡΠΈΠ±ΠΊΡ ReferenceError: Highcharts is not defined
. Π Π°Π½ΡΡΠ΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»
Π― ΡΠ΄Π΅Π»Π°Π»
npm install highcharts --save-dev
Π― ΡΠ΄Π΅Π»Π°Π»
//highcharts libraries
import Highcharts from 'highcharts/highstock';
import 'highcharts-ng'; //angular highcharts bindings
ΠΡΠ»ΠΈ Ρ ΠΏΠΎΡΠΌΠΎΡΡΡ Π² ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°, ΡΠ°ΠΉΠ» ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΡΡΡ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ:
ΠΡΠ±Π°Ρ ΠΏΠΎΠΌΠΎΡΡ ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΡΠ΅ΡΡΡ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠ²ΡΠ·Π°Π½Π° Ρ stackoverflow .
Π ΠΠΠΠΠ’ΠΠ ΠΠΠΠ’Π¬:
Π’Π°ΠΊΠΆΠ΅ Π² ΠΎΡΡΠ°ΡΠ½ΠΈΠΈ ΠΏΡΠΎΠ±ΠΎΠ²Π°Π» (: P) Ρ ΠΏΠ°ΠΊΠ΅ΡΠΎΠΌ highcharts-release
.
Π Π±ΠΎΠ»Π΅Π΅. Π― ΡΠΎΠΆΠ΅ ΠΏΡΠΎΠ±ΠΎΠ²Π°Π» ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΡΠΉ ΠΌΠ΅ΡΠΎΠ΄. Π€Π°ΠΉΠ», ΠΏΠΎΡ ΠΎΠΆΠ΅, Π²ΠΊΠ»ΡΡΠ΅Π½ Π² ΠΈΡΡΠΎΡΠ½ΠΈΠΊ, Π½ΠΎ Highcharts Π²ΡΠ΅ Π΅ΡΠ΅ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½.
//highcharts libraries
let Highcharts = require('highcharts/highstock');
import 'highcharts-ng';
CC- @laytzehwu
Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ webpack ng es6, ΠΈ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π·Π°ΡΡΠ°Π²ΠΈΡΡ Π΅Π³ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ - ΡΡΠΎ
var Highcharts = require('highcharts/highstock');
window.Highcharts = Highcharts;
require('highcharts/modules/exporting')(Highcharts);
ΠΡΠ»ΠΈ ΠΊΡΠΎ-ΡΠΎ Π·Π½Π°Π΅Ρ, ΠΊΠ°ΠΊ Π·Π°ΡΡΠ°Π²ΠΈΡΡ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΈΠΌΠΏΠΎΡΡΠ°, ΠΎΡΠ²Π΅ΡΡΡΠ΅
@ jon-a-nygaard
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅! ΠΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΡΠΎ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΡΠ΅Π΅. Π ΠΏΠΎΠΊΠ° Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²Π·Π³Π»ΡΠ½ΡΡΡ Π½Π° webpack Ρ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠΎΠΌ babel Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ.
ΠΡΠΈΠ²Π΅Ρ, @ jon-a-nygaard. Webpack - ΡΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎ ΠΏΡΡΡ Π²ΠΏΠ΅ΡΠ΅Π΄. ΠΡ ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅. ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π·ΡΠ΅Π»ΡΠΉ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π΄Π»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ°. ΠΠ°ΠΉ ΠΌΠ½Π΅ Π·Π½Π°ΡΡ, Π΅ΡΠ»ΠΈ ΠΏΠΎΠΉΠΌΠ΅ΡΡ ΡΡΠΎ.
Π₯ΠΎΡΠΎΡΠΎ. @ragefuljoe - window.Highcharts = Highcharts
Π±ΡΠ»ΠΎ ΡΠ΅ΠΌ, ΡΡΠΎ Π±ΡΠ»ΠΎ Π½ΡΠΆΠ½ΠΎ. ΠΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΡΡΠΈΠΌ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠΎΠΌ ΠΈΠΌΠΏΠΎΡΡΠ°!
import Highcharts from 'highcharts/highstock';
window.Highcharts = Highcharts; //this line did the magic
import 'highcharts-ng';
ΠΠΎΠ»ΠΆΠ½Ρ Π»ΠΈ ΠΌΡ Π·Π°ΠΊΡΡΡΡ ΡΡΠΎ ΠΈΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΡΠΈΠ²ΡΠ·Π°ΡΡ window.Highcharts Π²Π½ΡΡΡΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°? Π― Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΈΠ»ΠΈ Π³Π΄Π΅-ΡΠΎ Π΅ΡΠ΅.
@piggyslasher Π Π°Π΄, ΡΡΠΎ Π²Π°ΠΌ ΠΏΠΎΠΌΠΎΠ³ ΠΎΠ±Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΡΡ ΠΎΡ
Π― Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΈΠ»ΠΈ Π³Π΄Π΅-ΡΠΎ Π΅ΡΠ΅.
Π ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, Ρ Π΄ΠΎΠ±Π°Π²Π»Ρ ΠΎΠ±Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΡ ΠΊ ΡΡΠ°ΡΡΠ΅ Β«
ΡΡΠΎ ΠΊΡΡΡΠΎ @piggyslasher. Π£Π΄Π°ΡΠΈ Ρ ΠΈΠΌΠΏΠΎΡΡΠΎΠΌ exporting.js
Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠΎΠΌ ΠΈΠΌΠΏΠΎΡΡΠ°?
_ΠΠ±Π½ΠΎΠ²ΠΈΡΡ_
Π²ΠΎΡ Π²ΡΠ΅ ΡΡΡΠΎΠΊΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΠΌΠΎΠΈΠΌΠΈ Π²ΡΡΠΎΠΊΠΈΠΌΠΈ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ, Ρ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠΌΠΈ ΠΊΠ°ΡΡΠ°ΠΌΠΈ:
import Highcharts from 'highcharts/highstock';
window.Highcharts = Highcharts;
require('highcharts/modules/map')(Highcharts);
require('highcharts/modules/exporting')(Highcharts);
require('./pages/home-page/world'); //I'm downloading this from example links. any better way?
import 'highcharts-ng';
ΠΡΡΡ Π»ΠΈ Π»ΡΡΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΊΠ°ΡΡΡ? ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ Π·Π°Π³ΡΡΠΆΠ°Ρ ΠΈ ΡΠ²Π½ΠΎ Π²ΠΊΠ»ΡΡΠ°Ρ ΡΡΠ΄Π° world.js (Π΄ΡΡΠ³ΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ - ΠΏΠΎΠ»ΡΡΠΈΡΡ json ΠΈΠ· Π±ΡΠΊΡΠ½Π΄Π°, ΡΡΠΎ Ρ ΠΌΠΎΠ³ Π±Ρ ΡΠ΄Π΅Π»Π°ΡΡ)
Π£ ΠΌΠ΅Π½Ρ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°. ΠΡΠ΅, ΡΡΠΎ Ρ Ρ ΠΎΡΡ ΡΠ΄Π΅Π»Π°ΡΡ Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅, - ΡΡΠΎ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Highcharts ΠΈ ΠΏΠΎΠΊΠΎΠ½ΡΠΈΡΡ Ρ ΡΡΠΈΠΌ. ΠΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ JS Β«ΠΏΡΠΎΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡΒ» ΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈ, ΠΈ Ρ Π½Π΅ ΠΌΠΎΠ³Ρ ΠΏΠΎΠ½ΡΡΡ, ΠΏΠΎΡΠ΅ΠΌΡ Highcharts ΡΡΠΎΠ³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ.
@ jon-a-nygaard @TorsteinHonsi - Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠΎΠΈΡ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, ΠΊΠ°ΠΊ Angular, lodash, ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠΈΠ²Π°Π½ΠΈΠ΅, ui-router ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΄ΡΡΠ³ΠΈΡ JS-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΡΠ°ΡΠΊΡΡΠ²Π°ΡΡ ΡΠ²ΠΎΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° / Π²Π΅Π±-ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΈ Ρ. Π΄. ΠΈ Π΄ΡΠ±Π»ΠΈΡΡΡΡ ΠΈΡ Π² highcharts.
@romiem Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΡ. Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Ρ ΡΠ°Π±ΠΎΡΠ°Ρ Π½Π°Π΄ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΡΠΎΠ³ΠΎ, ΠΏΠ»Π°Π½ΠΈΡΡΡ Π²ΠΊΠ»ΡΡΠΈΡΡ Π΅Π³ΠΎ Π² Π½Π°Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π²ΡΠΏΡΡΠΊ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ.
ΠΡΠΈΠ²Π΅Ρ,
Π£ ΠΌΠ΅Π½Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ highcharts 4.2.5. Π― ΡΠ»Π΅ΠΆΡ Π·Π° ΡΡΠ°ΡΡΠ΅ΠΉ ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Highcharts Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌ Π² React .
ΠΡΠ»ΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΈΠΌΠΏΠΎΡΡΠ°, ΡΠΎ Π΅ΡΡΡ import Highcharts from 'highcharts'
, Ρ ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ Uncaught TypeError: _highcharts2.default[(this.props.type || "Chart")] is not a constructor
.
ΠΠΎΠ³Π΄Π° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ, ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΡΠΉ @ragefuljoe , ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ! ΠΎΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎ Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΌΠ΅Π½Ρ Π·Π°Π΄ΡΠΌΠ°ΡΡΡΡ, ΠΊΠ°ΠΊ Π½Π°ΡΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ 'highcharts/highstock
Π²ΠΌΠ΅ΡΡΠΎ 'highcharts'
? Π½Ρ, ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠΎΠΌ ΠΈΠΌΠΏΠΎΡΡΠ°. Π ΡΠ΅ΠΌ ΡΠ°Π·Π½ΠΈΡΠ°, ΠΈΠ»ΠΈ Π΄ΡΠΌΠ°Π»ΠΈ, ΡΡΠΎ ΡΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΠΈ Ρ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» ΠΈΠΌΠΏΠΎΡΡ?
ΠΠΎΡ ΠΏΠΎΠ»Π½ΡΠΉ (ΡΠ°Π±ΠΎΡΠΈΠΉ) ΠΊΠΎΠ΄:
import React, {Component} from 'react';
import ReactDOM from 'react-dom';
import Highcharts from 'highcharts/highstock';
class Chart extends Component {
constructor(props) {
super(props);
}
// When the DOM is ready, create the chart.
componentDidMount() {
// Extend Highcharts with modules
if (this.props.modules) {
this.props.modules.forEach(function (module) {
module(Highcharts);
});
}
this.chart = new Highcharts[this.props.type || "Chart"](
this.props.container,
this.props.options
);
}
//Destroy chart before unmount.
componentWillUnmount() {
this.chart.destroy();
}
//Create the div which the chart will be rendered to.
render() {
return React.createElement('div', { id: this.props.container });
}
}
export default Chart;
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ @ jon-a-nygaard Π·Π° ΡΠΎ, ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠΈΠ»ΠΈ ΠΌΠ½Π΅ ΠΎΠ± ΡΡΠΎΠΉ ΡΠ΅ΠΌΠ΅.
π Π΄Π»Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Webpack. Π― ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΠ» Π²ΡΠ΅ ΡΠ²ΠΎΠΈ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΡ Ρ React / Highsoft Π² CodePen, Π½ΠΎ ΡΠΊΠΎΡΠΎ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Ρ Π½Π° ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΉ ΡΠ·Π΅Π» env. Webpack / Import / ES6 - Ρ ΠΎΡΠΎΡΠ°Ρ ΡΡΡΠΊΠ°.
ΠΡΡΡ Π»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-Π½ΠΈΠ±ΡΠ΄Ρ Π½ΠΎΠ²ΠΎΡΡΠΈ ΠΎ "ΠΏΡΠΎΡΡΠΎΠΌ" ΠΈΠΌΠΏΠΎΡΡΠ΅ {Highcharts} ΠΈΠ· ΠΌΠΎΠ΄ΡΠ»Ρ "highcharts" Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ typescript / angular 2 Ρ highcharts 5? ΠΠ°ΡΠ΅Π» ΡΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ ΠΎ Β«ΡΡΠ΅Π±ΠΎΠ²Π°ΡΡ HighchartsΒ», ΡΡΠΎ Π²ΡΠ΅Π³Π΄Π° Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π²Π·Π»ΠΎΠΌΠ°Π½ΠΎ ...
@ jon-a-nygaard
@Skuriles ΠΠ°ΠΊΠΎΠΉ ΡΠΈΠΏ Highcharts Ρ ES6 ΠΈ Babelify
@ jon-a-nygaard Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ SystemJs
@Skuriles ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» Highcharts Ρ SystemJS . ΠΠ°Π΄Π΅ΡΡΡ, ΡΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ, Π΅ΡΠ»ΠΈ Π½Π΅Ρ, Π΄Π°ΠΉΡΠ΅ ΠΌΠ½Π΅ Π·Π½Π°ΡΡ.
ΠΠΎΠΏΡΠΎΠ±ΡΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΡΠ΅Π΅ ΠΈ ΠΎΠΏΡΠ±Π»ΠΈΠΊΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π΄Π΅ΡΡ!
ΠΠΎΠ»ΡΡΠΎΠ΅ ΡΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° Π²Π°Ρ ΠΏΡΠΈΠΌΠ΅Ρ !!
Π― ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ» ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄ ΠΈΠ·-Π·Π° Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½ΠΎ Ρ Π²ΡΠ΅ Π΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°Ρ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΌΠ°ΡΠΈΠ½ΠΎΠΏΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ° ΠΎΡ intellisens, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ gulp-typescript Π²ΡΠ΄Π°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠΈ. ΠΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Π½ΠΎ ΡΡΠΎ Π½Π΅ ΠΏΡΠΈΠ½ΠΎΡΠΈΡ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΠ΅Π½ΠΈΡ.
import Highcharts ΠΈΠ· 'highcharts / highstock.js "Π²ΡΠ΅ Π΅ΡΠ΅ ΠΎΡΡΠ°Π΅ΡΡΡ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ.
Π― ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΎΠ±ΠΎΠ²Π°Π» ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ»Π°Π³ΠΈΠ½ typescript-babel, Π½ΠΎ ΠΎΠ½ Π±ΡΠΎΡΠ°Π΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ ΡΠ΅Π»Π΅ΠΉ.
ΠΡΠ°ΠΊ, Π½Π°ΠΊΠΎΠ½Π΅Ρ, Ρ Π²Π΅ΡΠ½ΡΠ»ΡΡ ΠΊ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΡΠ°ΠΉΠ»Π° highstock.js Π½Π°ΠΏΡΡΠΌΡΡ, Π±Π΅Π· systemjs, ΠΈ ΠΏΡΠΎΡΡΠΎ ΠΎΠ±ΡΡΠ²ΠΈΠ» Highcharts Π² ΡΠ°ΠΉΠ»Π΅ TS, ΡΡΠΎΠ±Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ.
Π― ΠΆΠ΄Ρ Π½Π°ΡΡΠΎΡΡΠ΅Π³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ ES6, Π½ΠΎ ΠΏΠΎΠΊΠ° ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΆΠΈΡΡ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΠΎΠ½, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΡ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΠΌΡΡ Π½Π° ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Π±Π΅Π· systemjs Π΄Π»Ρ Π²ΡΠΏΡΡΠΊΠ°!
@ jon-a-nygaard Π― Π½Π΅ ΠΌΠΎΠ³Ρ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΡΠ²ΠΎΡ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ Highchart Π² ΠΌΠΎΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ recat. ΠΡΠ΅, ΡΡΠΎ Ρ ΠΏΠΎΠ»ΡΡΠ°Ρ, - ΡΡΠΎ ΠΏΡΡΡΠΎΠΉ ΡΠΊΡΠ°Π½. ΠΠΎΡ ΡΡΠΎ Ρ Π΄Π΅Π»Π°Ρ Π΄Π»Ρ ΡΠ²ΠΎΠ΅Π³ΠΎ highchart:
import React, {Component, PropTypes} from 'react';
import Highcharts from 'highcharts/highcharts';
import styles from './styles/linechart.css';
import cssModules from 'react-css-modules';
import request from 'axios';
import moment from 'moment';
@cssModules(styles)
class LineChart extends Component {
constructor(props) {
super(props);
}
static propTypes = {
modules: PropTypes.oneOfType([
PropTypes.string,
PropTypes.object,
PropTypes.array
]),
container: PropTypes.oneOfType([
PropTypes.string,
PropTypes.object,
PropTypes.array,
]),
options: PropTypes.oneOfType([
PropTypes.object,
PropTypes.array
]),
};
highchartsModules() {
if (this.props.modules) {
this.props.modules.forEach(function(module) {
module(Highcharts);
});
}
}
componentDidMount() {
const inComing = [];
const outGoing = [];
const xAxisData = [];
request.get('/dashboard/hourly', {
params: {
timezone: moment().utcOffset(),
date: '2016-07-06'
// date: moment(new Date()).format('YYYY-DD-MM')
}
}).then(response => {
response.data.forEach(item => {
const flattened = {};
const out = {};
flattened.name = item.date;
flattened.y = item.inCount;
out.name = item.date;
out.y = item.outCount;
xAxisData.push(item.hour);
inComing.push(flattened);
outGoing.push(flattened);
});
});
console.log('InComing data: ', inComing);
console.log('OutGoing data: ', outGoing);
console.log('X Axis data: ', xAxisData);
const chartOptions = {
tooltip: {
borderRadius: 20,
backgroundColor: 'rgba(18, 21, 23, 0.9)',
style: {
color: 'white',
},
shadow: false,
},
title: {
text: ''
},
subTitle: {
text: ''
},
xAxis: {
categories: xAxisData,
labels: {
enabled: false
},
crosshair: {
width: 1,
dashStyle: 'Dash',
color: 'black',
snap: false,
},
tickInterval: 2
},
legend: {
enabled: false,
},
series: [{
name: 'Incoming Calls',
data: inComing
}, {
name: 'Outgoing Calls',
data: outGoing
}
]
};
this.highchartsModules();
console.log('CHART OPTIONS: ', chartOptions);
if (typeof window !== 'undefined') {
this.chart = new Highcharts['Chart'](
this.props.container,
chartOptions
);
}
}
render() {
const { container } = this.props;
return (
// <div styleName="chart">
<div class="chart" id={container} />
// </div>
);
}
}
export default LineChart;
ΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΡ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ:
<LineChart container="chart" type="chart" />
ΠΡΠ±Π°Ρ ΠΏΠΎΠΌΠΎΡΡ ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΡΠ΅ΡΡΡ. ΠΠ°ΡΠ°Π½Π΅Π΅ ΡΠΏΠ°ΡΠΈΠ±ΠΎ.
ΠΠΎΠΊΠ° Ρ ΠΌΠ΅Π½Ρ Π²ΡΠ΅ Π·Π°ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ.
import Highcharts from "highcharts";
systemjs
ΠΊΠ°ΡΡΠ°:
'highcharts': "npm:highcharts"
ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠ°:
'highcharts': { main: "highstock", defaultExtension: "js"}
Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°:
ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π²ΡΠ΄Π°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠΈ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ @ types / highharts ΠΈΠΌΠ΅Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ:
Property 'StockChart' does not exist on type 'Static'.
Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ
ΠΠ° ΡΠ»ΡΡΠ°ΠΉ, Π΅ΡΠ»ΠΈ ΠΊΠΎΠΌΡ-ΡΠΎ ΡΡΠΎ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Ρ Rollup
Π£ ΠΌΠ΅Π½Ρ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ°.
Π ΡΠ°ΠΉΠ»Π΅ vendor.ts Ρ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ
import * as _highcharts from 'highcharts/highcharts';
...
export default {
...
_highcharts
};
Π§ΡΠΎ ΡΠΎΠ·Π΄Π°Π΅Ρ Π½Π°Π±ΠΎΡ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠΎΠ².
ΠΠ°ΡΠ΅ΠΌ Π² ΠΌΠΎΠ΅ΠΌ app.rollup.js (ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΌΠΎΠ΅Π³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ).
export default {
entry: 'src/main.ts',
dest: 'bundles/app.js',
format: 'iife',
sourceMap: true,
moduleName: 'app',
plugins: [
...
],
external: [
'highcharts/highcharts'
],
globals: {
...
'highcharts/highcharts': 'vendor._highcharts'
}
};
Π, Π½Π°ΠΊΠΎΠ½Π΅Ρ, Π² ΠΌΠΎΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Ρ ΠΌΠΎΠ³Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ
import Highcharts from 'highcharts/highcharts';
@ jon-a-nygaard Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Π²Π°Ρ ΠΏΡΠΈΠΌΠ΅Ρ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ ΠΌΠ°ΡΠΈΠ½ΠΎΠΏΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ°. Π― ΠΏΠΎΠ»ΡΡΠ°Ρ ΠΎΡΠΈΠ±ΠΊΡ 'highchart' has no default export
.
@Skuriles ΡΠΏΠ°ΡΠΈΠ±ΠΎ, ΡΡΠΎ Π²Π°Ρ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π½ΠΎ Ρ ΡΠ΄Π΅Π»Π°Π» ΠΏΡΠΎΡΡΠΎΠΉ ΠΈ ΠΏΡΠΎΡΡΠΎΠΉ ..
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ 'highcharts';
(Π² Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ Π΄ΡΡΠ³ΠΈΠΌ Π²Π°ΡΠΈΠΌ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ)
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ
ΠΠΈ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π²ΡΡΠ΅ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ Π½Π΅ ΠΏΠΎΠΌΠΎΠ³Π»ΠΎ ΠΌΠ½Π΅ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΌΠ°ΡΠΈΠ½ΠΎΠΏΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ° Π΄Π»Ρ ΠΌΠ΅Π½Ρ, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ Π½ΠΈΠΆΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠ°Π±ΠΎΡΠ°Π»ΠΎ:
import Highcharts from 'highcharts/highcharts.src.js';
import {default as HighchartsMore} from 'highcharts/highcharts-more.src.js';
HighchartsMore(Highcharts);
ΠΠ»Ρ ΡΠ΅Ρ ΠΈΠ· Π²Π°Ρ, ΠΊΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ Highcharts Π² TypeScript, Ρ ΡΠΎΠ·Π΄Π°Π» ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°Π±ΠΎΡΠ΅ΠΉ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ . ΠΠ° ΡΡΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π² ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΡΠ°ΠΊ ΡΡΠΎ ΡΠΎ, ΡΡΠΎ Π·Π°Π³ΡΡΠ·ΠΊΠ° Highcharts Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
import * as Highcharts from 'highcharts'
import * as HighchartsMore from 'highcharts/highcharts-more.src.js'
HighchartsMore(Highcharts)
ΠΡΠΈΡΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ import Highcharts from 'highcharts'
Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΡΠ΅Π±ΡΠ΅Ρ, ΡΡΠΎΠ±Ρ Π½Π°ΡΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΡΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π° ΠΎΠ½ΠΈ ΡΡΠΎΠ³ΠΎ Π½Π΅ Π΄Π΅Π»Π°ΡΡ. ΠΠ»Ρ ΡΠ΅Ρ
, ΠΊΡΠΎ Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°Π½, Π² Typescript Π΅ΡΡΡ Ρ
ΠΎΡΠΎΡΠ°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌ ΡΠΎΡΠΌΠ°ΠΌ ΠΈΠΌΠΏΠΎΡΡΠ° .
ΠΡΠΈΠ²Π΅Ρ, ΠΠΆΠΎΠ½, Π² ΠΌΠΎΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠ½ ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² Google Chrome, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ. ΠΠΎ ΡΡΠΈ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ Π½Π΅ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ Π² ΡΠ»ΡΡΠ°Π΅ Mozilla ΠΈ ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ Π²ΡΠ΄Π°ΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ. ΠΠ°ΠΉΡΠ΅ ΠΌΠ½Π΅ ΠΊΠ°ΠΊΠΎΠ΅-Π½ΠΈΠ±ΡΠ΄Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΊΠ°ΠΊ ΡΠ΅ΡΠΈΡΡ.
ΠΡΠ±ΠΎΠΉ, ΠΊΡΠΎ ΡΠ΅ΡΠΈΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΏΠΎΠΌΠΎΠ³ΠΈΡΠ΅
ΠΡΠΈΠ²Π΅Ρ @ Sandipj38!
ΠΡΠΎ Π½Π΅ ΠΏΠΎΡ ΠΎΠΆΠ΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΈΠΌΠΏΠΎΡΡΠΎΠΌ ES6. ΠΠ΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π²Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ΅ΠΌΡ Π½Π° Π½Π°ΡΠ΅ΠΌ ΡΠΎΡΡΠΌΠ΅ ΠΈΠ»ΠΈ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π½Π°ΠΌ ΠΏΠΈΡΡΠΌΠΎ ( ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ )? Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ!
ΠΡΠΈΠ²Π΅Ρ,
Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ webpack Ρ ΡΠ΅Π°ΠΊΡΠΈΡΠΌΠΈ ΠΈ Π²ΡΡΠΎΠΊΠΈΠΌΠΈ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ. Π― ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅
Uncaught TypeError: _highcharts2.default[(this.props.type || "Chart")] is not a constructor
Π― ΡΠ΅ΡΠΈΠ» ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΈ Π½Π΅ ΡΠΌΠΎΠ³ Π½Π°ΠΉΡΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ. Π― ΠΏΡΠΎΠ±ΠΎΠ²Π°Π» Π²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ import / require 'highcharts', 'highcharts / highstock,' highcharts.js ', ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ Ρ ΠΌΠ΅Π½Ρ Π½Π΅Ρ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ².
var Chart = React.createClass({
componentDidMount: function () {
// Extend Highcharts with modules
if (this.props.modules) {
this.props.modules.forEach(function (module) {
module(Highcharts);
});
}
// Set container which the chart should render to.
this.chart = new Highcharts[this.props.type || "Chart"](
this.props.container,
this.props.options
);
},
//Destroy chart before unmount.
componentWillUnmount: function () {
this.chart.destroy();
},
//Create the div which the chart will be rendered to.
render: function () {
return React.createElement('div', { id: this.props.container });
}
}), element2;
ΠΠ΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π²Ρ ΠΏΠΎΠΌΠΎΡΡ ΠΌΠ½Π΅ Π·Π΄Π΅ΡΡ?
@ satishrao84, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠΎΠΈΡ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ https://github.com/kirjs/react-highcharts , Ρ ΠΌΠ΅Π½Ρ ΡΡΠΎ ΡΡΠ°Π±ΠΎΡΠ°Π»ΠΎ
ΠΠ½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ Π·Π°ΡΡΠ°Π²ΠΈΡΡ Highcharts ΠΈ Highstock ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΈΠΌΠΏΠΎΡΡΠΎΠΌ ES6, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ webpack, ΡΡΠΏΠ΅ΡΠ½ΠΎ Ρ ΡΠ΅ΠΌΠΎΠΉ, ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅ΠΉΡΡ Π² ΠΏΠ°ΠΊΠ΅ΡΠ΅, js ΡΠ°ΠΉΠ»Π΅.
Π― ΠΏΠΈΡΠ°Π» ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ highcharts-ng Π·Π΄Π΅ΡΡ https://github.com/pablojim/highcharts-ng/issues/624
Π Π΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π±ΡΠ»ΠΎ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ highcharts / highstock, Π·Π°ΡΠ΅ΠΌ ΡΠ΅ΠΌΡ, Π·Π°ΡΠ΅ΠΌ highcharts-ng Π² ΠΌΠΎΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π° Π·Π°ΡΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Highcharts Π² Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ Π² ΠΌΠΎΠ΅ΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ webpack, ΠΈ ΡΡΠΎ ΡΡΠ°Π±ΠΎΡΠ°Π»ΠΎ.
* ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΌΠ½Π΅ ΠΏΡΠΈΡΠ»ΠΎΡΡ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π½Π° highcharts-ng v1.0.1, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ 1.1.0 Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Highcharts 5 ΠΈ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠ° Highcharts. ΠΠ½Π΅ Π±ΡΠ» Π½ΡΠΆΠ΅Π½ Highstock, ΠΈ Π²ΠΎΠ·Π²ΡΠ°Ρ ΠΊ v1.0.1 Π½Π΅ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ Highcharts, ΠΏΠΎΡΡΠΎΠΌΡ Ρ ΠΌΠΎΠ³ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Highstock v6 ΠΈ ΠΌΠΎΡ ΡΠ΅ΠΌΡ Π² ΠΌΠΎΠ΅ΠΌ ΠΏΠ°ΠΊΠ΅ΡΠ΅ Π±Π΅Π· Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ ΠΈΠ»ΠΈ ΡΡΠΎΠΉΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Highcharts Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°.
Π ΠΠΠΠΠ’ΠΠ ΠΠΠΠ’Π¬: Ρ ΡΠ°ΠΊΠΆΠ΅ ΡΠΌΠΎΠ³ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΊΡΠΏΠΎΡΡΠ½ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠΎΠΌ ΠΈΠΌΠΏΠΎΡΡΠ° ES6
import Highcharts from "highcharts/highstock";
import "../../js/highcharts.theme";
import "highcharts-ng";
import Exporter from "highcharts/modules/exporting";
// connect exporter to Highcharts bundle global
Exporter(Highcharts);
Π Π² webpack.config Π½Π°ΡΡΡΠΎΠΉΡΠ΅ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ Highcharts Π΄Π»Ρ ΡΠ΅ΠΌΡ.
plugins: [
new webpack.ProvidePlugin({
jQuery: "jquery",
$: "jquery",
"window.jQuery": "jquery",
Highcharts: "highcharts/highstock"
})
]
@ satishrao84 Π― ΠΏΠΎΠ»ΡΡΠ°Π» ΡΡ ΠΆΠ΅ ΠΎΡΠΈΠ±ΠΊΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΡΠ°Π»ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ highstock, Π½ΠΎ Π·Π°Π³ΡΡΠΆΠ°Π» ΡΠΎΠ»ΡΠΊΠΎ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ highcharts. ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ ΡΠ²ΠΎΠΉ webpack bundle.js Π½Π° Π½Π°Π»ΠΈΡΠΈΠ΅ Highstock JS ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅, ΡΠΏΠ°ΠΊΠΎΠ²ΡΠ²Π°Π΅ΡΡΡ Π»ΠΈ ΠΎΠ½ Π² Π½Π΅Π³ΠΎ ΠΈΠ»ΠΈ Π²ΠΌΠ΅ΡΡΠΎ Π½Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Highcharts. ΡΠΌ. ΠΌΠΎΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ Π²ΡΡΠ΅ ΠΎ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ highstock Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΠΌΠΏΠΎΡΡΠ°. Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ highstock ΠΈ ΡΠ΅ΠΌΠ°, ΡΠ°Π±ΠΎΡΠ°ΡΡΠ°Ρ Ρ highcharts-ng, Π½ΠΎ Ρ ΠΏΠΎΠΊΠ° Π½Π΅ ΠΌΠΎΠ³Ρ Π·Π°ΡΡΠ°Π²ΠΈΡΡ ΡΠΊΡΠΏΠΎΡΡΠ΅ΡΠ° ΡΠ°Π±ΠΎΡΠ°ΡΡ, Ρ ΠΎΡΡ ΠΎΠ½ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² bundle.js ΠΈ Π²Π²ΠΎΠ΄ΠΈΡ Highcharts, Π·Π½Π°ΡΠΎΠΊ ΠΌΠ΅Π½Ρ Π΅ΡΠ΅ Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π½Π° ΠΌΠΎΠ΅ΠΌ Π³ΡΠ°ΡΠΈΠΊΠ΅.
ΠΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠ΅ΠΏΠ΅ΡΡ ΡΡΠΈΡΠ°Π΅ΡΡΡ Π·Π°ΠΊΡΡΡΠΎΠΉ ΠΈΠ·-Π·Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ, ΡΠ΄Π΅Π»Π°Π½Π½ΡΡ Π² ΠΊΠΎΠΌΠΌΠΈΡΠ΅ 7da7361. ΠΡΠ° ΡΠΈΠΊΡΠ°ΡΠΈΡ ΡΠ»ΡΡΡΠ°Π΅Ρ Π½Π°ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ Π·Π°Π³ΡΡΠΆΠ°ΡΡ Highcharts Π² ES6, ΡΡΠΎ Ρ ΡΡΠΈΡΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΡ Π·Π΄Π΅ΡΡ. Π― ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΡ ΡΡΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΊ www.highcharts.com/docs .
Π‘ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ ΡΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΠ»Π°ΡΡ Π² ΡΠΌΠ΅ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΡΠ°Π·Π½ΡΡ , Π½ΠΎ ΠΏΠΎΡ ΠΎΠΆΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ°Π»ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΡΠ΄Π½ΠΎ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ. ΠΡΠ»ΠΈ Ρ ΠΊΠΎΠ³ΠΎ-ΡΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½Π°Ρ ΡΡΠΎΠΉ ΡΠ΅ΠΌΠ΅, ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π½ΠΎΠ²ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠΎΠ³Π΄Π° Π²Π°ΠΌ Π±ΡΠ΄Π΅Ρ Π»Π΅Π³ΡΠ΅ ΠΎΠΊΠ°Π·Π°ΡΡ Π²Π°ΠΌ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ ΠΏΠΎΠΌΠΎΡΡ.
ΠΠ»Ρ ΡΠ΅Ρ , ΠΊΡΠΎ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ Π½Π°ΡΠΈΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ES6, ΠΏΡΠΎΡΠΈΠΌ ΡΠ»Π΅Π΄ΠΈΡΡ Π·Π° Π²ΡΠΏΡΡΠΊΠΎΠΌ β 7186.
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ Π²ΠΎΠΏΡΠΎΡΡ ΠΏΠΎ ΡΡΠΎΠΉ ΡΠ΅ΠΌΠ΅, Π΄Π°ΠΉΡΠ΅ Π½Π°ΠΌ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ.
Π‘ Π½Π°ΠΈΠ»ΡΡΡΠΈΠΌΠΈ ΠΏΠΎΠΆΠ΅Π»Π°Π½ΠΈΡΠΌΠΈ
ΠΌΠ½Π΅ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎΡΡ Π²ΡΠ΅ΠΌΡ, ΡΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ Π΅Π³ΠΎ, Π½ΠΎ Π² ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΠΈΡΠΎΠ³Π΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ°Π·ΠΎΠ±Π»Π°ΡΠ΅Π½ΠΈΠ΅
ΠΏΡΠΎΡΡΠ°Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° highcharts
Π° ΠΏΠΎΡΠΎΠΌ
import 'Π²ΡΡΡΠ°Π²ΠΈΡΡ? highcharts! highcharts / highcharts';
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ @ omer123456 Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΎΡΠΈΠ±ΠΊΡ
BREAKING CHANGE: It's no longer allowed to omit the '-loader' suffix when using loaders.
You need to specify 'expose-loader' instead of 'expose',
see https://webpack.js.org/guides/migrating/#automatic-loader-module-name-extension-removed
ΠΠ΄ΠΈΠ½ ΠΈΠ· ΡΠΏΠΎΡΠΎΠ±ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΡΡΠΎ
Π² Π²Π°ΡΠ΅ΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ js
import Highcharts from 'highcharts';
import 'highcharts-ng'
Π Π·Π°ΡΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π½ΠΎΠ²ΠΎΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π² webpack.config.js
{
test: require.resolve('highcharts'),
use:[{
loader: 'expose-loader',
options: 'Highcharts'
}]
}
ΠΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅ΡΠ°Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Cannot read property 'Chart' of null
ΠΠ½ ΡΠΏΠΎΠΌΠΈΠ½Π°Π΅ΡΡΡ Π² ΡΡΠΎΠΉ Π²Π΅ΡΠΊΠ΅, Π½ΠΎ Π΅Π³ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ; Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ Π²Π΅ΡΡΠΈΠΈ highcharts Π΅ΡΡΡ Π½Π°ΡΡΠΎΡΡΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ es6, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΎ:
https://github.com/highcharts/highcharts/issues/7186
Π₯ΠΎΡΡ ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ ΡΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ ΠΎ Π½ΠΈΡ Π²ΡΠ΅ Π΅ΡΠ΅ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ Π² ΠΎΠ½Π»Π°ΠΉΠ½-Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ -
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ webpack ng es6, ΠΈ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π·Π°ΡΡΠ°Π²ΠΈΡΡ Π΅Π³ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ - ΡΡΠΎ
ΠΡΠ»ΠΈ ΠΊΡΠΎ-ΡΠΎ Π·Π½Π°Π΅Ρ, ΠΊΠ°ΠΊ Π·Π°ΡΡΠ°Π²ΠΈΡΡ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΈΠΌΠΏΠΎΡΡΠ°, ΠΎΡΠ²Π΅ΡΡΡΠ΅