Reactjs react上的动态图表

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代码是

/* 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