Iam試圖創建我反應組件的多個實例,但只渲染了第一個實例。我猜iam在這裏做了一些重大的失敗:)反應組件的多個實例無法正常工作?
這是組件。
import React from 'react';
import ReactDOM from 'react-dom';
import ChartJS from 'chart.js'
import DataService from '../core/data-service.js';
function GetReportData() {
let chartElement = document.getElementById('react-chart-bar');
var id = {
id: chartElement.dataset.id
};
DataService.getReportData(id).done(function(data) {
renderChart(data);
}).fail(function(jqXHR, status, error) {
console.log(error);
});
}
function renderChart(data) {
var ctx = document.getElementById('chart-bar');
var chart_bar = new ChartJS(ctx, {
type: data.ChartType,
data: {
labels: data.Labels,
datasets: data.DataSet
},
options: {
responsive: true,
scales: {
yAxes: [
{
ticks: {
beginAtZero: true,
max: data.MaxTicks
}
}
]
}
}
});
}
class Chart extends React.Component {
componentDidMount() {
GetReportData();
}
render() {
return <div>
<canvas id="chart-bar" width="400" height="300"></canvas>
</div>
}
}
let node = document.getElementById('react-chart-bar');
if (node != null) {
ReactDOM.render(
<Chart/>, node);
}
然後在我的HTML我這樣調用的組件。
<div id="react-chart-bar" data-id="1"></div>
<div id="react-chart-bar" data-id="9"></div>
我需要呈現相同的組分,而是基於HTML元素上的數據-id屬性不同勢數據。
感謝您的幫助:)
// g^
沒有重複的ID ... – Li357