@visactor/taro-vchart
Version:
Taro VChart 图表组件
41 lines (39 loc) • 1.52 kB
JavaScript
import React from "react";
export class WebChart extends React.Component {
constructor(props) {
super(props);
}
componentDidMount() {
const {onChartInit: onChartInit, onChartReady: onChartReady, mode: mode, chartConstructor: chartConstructor} = this.props;
chartConstructor || console.error("chartConstructor not found"), this.vchart = new chartConstructor(this.props.spec, Object.assign({
dom: `${this.props.canvasId}`,
mode: mode
}, this.props.options)), onChartInit && onChartInit(this.vchart), this.vchart.renderAsync().then((() => {
onChartReady && onChartReady(this.vchart);
})).catch((e => {
console.error(e);
}));
}
componentWillUnmount() {
this.vchart && this.vchart && this.vchart.release();
}
componentDidUpdate(prevProps) {
if (!this.vchart) return;
const {spec: spec, onChartReady: onChartReady} = this.props;
JSON.stringify(prevProps.spec) !== JSON.stringify(spec) && (this.vchart.updateSpec(spec, !0),
onChartReady && onChartReady(this.vchart));
}
render() {
const {canvasId: canvasId, style: style} = this.props;
return React.createElement("div", {
style: Object.assign(Object.assign({
position: "relative"
}, style), {
padding: 0
}),
id: `${canvasId}`
});
}
}
export default WebChart;
//# sourceMappingURL=index.js.map