TypeError: react__WEBPACK_IMPORTED_MODULE_0___default.a.createClass is not a function

17 篇文章 2 订阅

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

就可以使用了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值