Reactjs react上的动态图表
我的app.js代码是Reactjs react上的动态图表,reactjs,canvas,Reactjs,Canvas,我的app.js代码是 /* App.js */ var React = require('react'); var Component = React.Component; var CanvasJSReact = require('./canvasjs.react'); var CanvasJS = CanvasJSReact.CanvasJS; var CanvasJSChart = CanvasJSReact.CanvasJSChart; var updateInterval = 500;
/* App.js */
var React = require('react');
var Component = React.Component;
var CanvasJSReact = require('./canvasjs.react');
var CanvasJS = CanvasJSReact.CanvasJS;
var CanvasJSChart = CanvasJSReact.CanvasJSChart;
var updateInterval = 500;
class App extends Component {
constructor() {
super();
this.updateChart = this.updateChart.bind(this);
}
componentDidMount(){
setInterval(this.updateChart, updateInterval);
}
updateChart() {
var dpsColor, dpsTotal = 0, deltaY, yVal;
var dps = this.chart.options.data[0].dataPoints;
var chart = this.chart;
for (var i = 0; i < dps.length; i++) {
deltaY = Math.round(2 + Math.random() *(-2-2));
yVal = deltaY + dps[i].y > 0 ? (deltaY + dps[i].y < 100 ? dps[i].y + deltaY : 100) : 0;
dpsColor = yVal >= 90 ? "#e40000" : yVal >= 70 ? "#ec7426" : yVal >= 50 ? "#81c2ea" : "#88df86 ";
dps[i] = {label: "Core "+(i+1) , y: yVal, color: dpsColor};
dpsTotal += yVal;
}
chart.options.data[0].dataPoints = dps;
chart.options.title.text = "CPU Usage " + Math.round(dpsTotal / 6) + "%";
chart.render();
}
render() {
const options = {
theme: "dark2",
title: {
text: "CPU Usage"
},
subtitles: [{
text: "Intel Core i7 980X @ 3.33GHz"
}],
axisY: {
title: "CPU Usage (%)",
suffix: "%",
maximum: 100
},
data: [{
type: "column",
yValueFormatString: "#,###'%'",
indexLabel: "{y}",
dataPoints: [
{ label: "Core 1", y: 68 },
{ label: "Core 2", y: 3 },
{ label: "Core 3", y: 8 },
{ label: "Core 4", y: 87 },
{ label: "Core 5", y: 2 },
{ label: "Core 6", y: 6 }
]
}]
}
return (
<div>
<CanvasJSChart options = {options}
onRef={ref => this.chart = ref}
/>
{/*You can get reference to the chart instance as shown above using onRef. This allows you to access all chart properties and methods*/}
</div>
);
}
}
module.exports = App;
/*App.js*/
var React=要求('React');
var组件=React.Component;
var CanvasJSReact=require('./canvasjs.react');
var CanvasJS=CanvasJSReact.CanvasJS;
var CanvasJSChart=CanvasJSReact.CanvasJSChart;
var updateInterval=500;
类应用程序扩展组件{
构造函数(){
超级();
this.updateChart=this.updateChart.bind(this);
}
componentDidMount(){
setInterval(this.updateChart、updateInterval);
}
updateChart(){
var dpsColor,dpsTotal=0,deltaY,yVal;
var dps=this.chart.options.data[0].dataPoints;
var chart=this.chart;
对于(变量i=0;i0?(deltaY+dps[i]。y<100?dps[i]。y+deltaY:100):0;
dpsColor=yVal>=90?#e40000:yVal>=70?#ec7426:yVal>=50?#81c2ea:“#88df86”;
dps[i]={label:“Core”+(i+1),y:yVal,color:dpsColor};
dpsTotal+=yVal;
}
chart.options.data[0].dataPoints=dps;
chart.options.title.text=“CPU使用率”+Math.round(dpsTotal/6)+“%”;
chart.render();
}
render(){
常量选项={
主题:“黑暗”,
标题:{
文本:“CPU使用”
},
字幕:[{
文字:“英特尔酷睿i7 980X@3.33GHz”
}],
axisY:{
标题:“CPU使用率(%)”,
后缀:“%”,
最高限额:100
},
数据:[{
键入:“列”,
yValueFormatString:“#,###'%”,
索引标签:“{y}”,
数据点:[
{标签:“核心1”,y:68},
{标签:“核心2”,y:3},
{标签:“核心3”,y:8},
{标签:“核心4”,y:87},
{标签:“核心5”,y:2},
{标签:“核心6”,y:6}
]
}]
}
返回(
this.chart=ref}
/>
{/*您可以使用onRef获取对如上所示图表实例的引用。这允许您访问所有图表属性和方法*/}
);
}
}
module.exports=App;
错误是
错误:元素类型无效:应为字符串(对于内置
组件)或类/函数(用于复合组件),但得到:
未定义。您可能忘记了从文件中导出组件
它是在中定义的,或者您可能混淆了默认导入和命名导入
检查App
的渲染方法。
▶ 折叠了20个堆栈帧。如果要使用ref(此.chart),必须首先在构造函数中创建它:
this.chart = React.createRef();
可以在渲染中对其进行初始化(该部分是正确的):
如果要使用ref(this.chart),必须首先在构造函数中创建它:
this.chart = React.createRef();
可以在渲染中对其进行初始化(该部分是正确的):
this.chart.current