Я использую response и chart.js вместе для построения диаграммы. Но в chart.js мы должны использовать теги canvas, и чтобы найти этот тег и поместить в него гистограмму, мы используем наш обычный метод document.getElementById()
. Я пробовал много комбинаций, например, положить document.getElementById()
в начале или внутри $(document).ready()
, даже в режиме реакции componentDidMount()
. Но все же я получаю «TypeError: document.getElementById(...) is null
». Если кто-нибудь знает об этом, пожалуйста, дайте мне предложение. Спасибо.Получение «TypeError: document.getElementById (...) является нулевым» при использовании response.js с chart.js
Вот код, который я пытаюсь выполнить:
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. –