@visactor/taro-vchart
Version:
Taro VChart 图表组件
47 lines (43 loc) • 1.68 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: !0
}), exports.WebChart = void 0;
const react_1 = require("react");
class WebChart extends react_1.default.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_1.default.createElement("div", {
style: Object.assign(Object.assign({
position: "relative"
}, style), {
padding: 0
}),
id: `${canvasId}`
});
}
}
exports.WebChart = WebChart, exports.default = WebChart;
//# sourceMappingURL=index.js.map