【发布时间】:2015-09-06 12:24:16
【问题描述】:
我正在使用 react 和 chart.js 一起绘制条形图。但是在chart.js 中,我们必须使用canvas 标签并找到该标签并将条形图放入其中,我们使用我们正常的document.getElementById() 方法。我尝试了很多组合,例如将document.getElementById() 放在开头,或者放在$(document).ready() 中,甚至在react 的componentDidMount() 方法中。但我仍然得到“TypeError: document.getElementById(...) is null”。如果有人知道,请给我一个建议。
谢谢。
这是我要执行的代码:
var React = require("react");
var Chart = React.createClass({
getDefaultProps: function() {
barChartData = {
labels : ["Option1", "Option2"],
datasets : [
{
fillColor : "rgba(220,220,220,0.5)",
strokeColor : "rgba(220,220,220,0.8)",
highlightFill: "rgba(220,220,220,0.75)",
highlightStroke: "rgba(220,220,220,1)",
data : [65, 35]
}
]
}
},
onload: function() {
console.log(document.getElementById('canvas_poll'));
var ctx = document.getElementById("canvas_poll").getContext("2d");
window.myBar = new Chart(ctx).HorizontalBar(this.props.barChartData, {
responsive : true,
});
},
componentDidMount: function() {
this.onload();
},
render: function() {
return (
<div>
<canvas classID="canvas_poll" height={100} width={600}></canvas>
</div>
);
}
});
module.exports = Chart;
【问题讨论】:
-
正如@CallanHeard 建议的那样,我知道没有
classID属性之类的东西。你必须使用id属性。
标签: javascript jquery reactjs chart.js