×
TypeError: react__WEBPACK_IMPORTED_MODULE_0___default.a.createClass is not a function
Module…/src/pages/app/line.jsx
C:/zoeCode/study/react/reactApp/src/pages/app/line.jsx:110
107 | import React from ‘react’;
108 | import ReactEcharts from ‘echarts-for-react’;
109 |
110 | const LineMarkerEcharts = React.createClass({
111 | propTypes: {
112 | },
113 | getOtion: function() {
…
遇到这个问题,在react中,写的方法不能用,即这种:
import React from 'react';
import ReactEcharts from 'echarts-for-react';
const LineMarkerEcharts = React.createClass({
propTypes: {
},
getOtion: function() {
const option = {
title: {
text: '未来一周气温变化',
subtext: '纯属虚构'
},
tooltip: {
trigger: 'axis'
},
legend: {
data:['最高气温','最低气温']
},
toolbox: {
show: true,
feature: {
dataZoom: {
yAxisIndex: 'none'
},
dataView: {readOnly: false},
magicType: {type: ['line', 'bar']},
restore: {},
saveAsImage: {}
}
},
xAxis: {
type: 'category',
boundaryGap: false,
data: ['周一','周二','周三','周四','周五','周六','周日']
},
yAxis: {
type: 'value',
axisLabel: {
formatter: '{value} °C'
}
},
series: [
{
name:'最高气温',
type:'line',
data:[11, 11, 15, 13, 12, 13, 10],
markPoint: {
data: [
{type: 'max', name: '最大值'},
{type: 'min', name: '最小值'}
]
},
markLine: {
data: [
{type: 'average', name: '平均值'}
]
}
},
{
name:'最低气温',
type:'line',
data:[1, -2, 2, 5, 3, 2, 0],
markPoint: {
data: [
{name: '周最低', value: -2, xAxis: 1, yAxis: -1.5}
]
},
markLine: {
data: [
{type: 'average', name: '平均值'},
[{
symbol: 'none',
x: '90%',
yAxis: 'max'
}, {
symbol: 'circle',
label: {
normal: {
position: 'start',
formatter: '最大值'
}
},
type: 'max',
name: '最高点'
}]
]
}
}
]
};
return option;
},
render: function() {
let code = "<ReactEcharts " +
" option={this.getOtion()} " +
" style={{height: '350px', width: '1000px'}} " +
" className='react_for_echarts' />";
return (
<ReactEcharts
option={this.getOtion()}
style={{height: '350px', width: '1000px'}}
className='react_for_echarts' />
);
}
});
export default LineMarkerEcharts;
修改成这样:
export default class LineMarkerEcharts extends React.Component {
。。。
}
具体代码如下:就不报错了
import React from 'react';
import ReactEcharts from 'echarts-for-react';
// class LineMarkerEcharts extends React.Component { 换成下面写法
export default class LineMarkerEcharts extends React.Component {
propTypes = {
}
getOtion = () => {
const option = {
title: {
text: '未来一周气温变化',
subtext: '纯属虚构'
},
tooltip: {
trigger: 'axis'
},
legend: {
data: ['最高气温', '最低气温']
},
toolbox: {
show: true,
feature: {
dataZoom: {
yAxisIndex: 'none'
},
dataView: { readOnly: false },
magicType: { type: ['line', 'bar'] },
restore: {},
saveAsImage: {}
}
},
xAxis: {
type: 'category',
boundaryGap: false,
data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
},
yAxis: {
type: 'value',
axisLabel: {
formatter: '{value} °C'
}
},
series: [
{
name: '最高气温',
type: 'line',
data: [11, 11, 15, 13, 12, 13, 10],
markPoint: {
data: [
{ type: 'max', name: '最大值' },
{ type: 'min', name: '最小值' }
]
},
markLine: {
data: [
{ type: 'average', name: '平均值' }
]
}
},
{
name: '最低气温',
type: 'line',
data: [1, -2, 2, 5, 3, 2, 0],
markPoint: {
data: [
{ name: '周最低', value: -2, xAxis: 1, yAxis: -1.5 }
]
},
markLine: {
data: [
{ type: 'average', name: '平均值' },
[{
symbol: 'none',
x: '90%',
yAxis: 'max'
}, {
symbol: 'circle',
label: {
normal: {
position: 'start',
formatter: '最大值'
}
},
type: 'max',
name: '最高点'
}]
]
}
}
]
};
return option;
}
render() {
let code = "<ReactEcharts " +
" option={this.getOtion()} " +
" style={{height: '350px', width: '1000px'}} " +
" className='react_for_echarts' />";
return (
<ReactEcharts
option={this.getOtion()}
style={{ height: '350px', width: '1000px' }}
className='react_for_echarts' />
);
}
}
在其他文件中,引入,
//引入模块
import LineJsx from './line'
//render中
<LineJsx />
就可以使用了