繁体   English   中英

将香草ES6扩展类导入React

[英]Import vanilla ES6 extended class into React

如何在使用React.Component 情况下React.Component ES6类和扩展类导入到ReactJS项目中?

App.js

import React from 'react';
import {Log} from './lib/Log';
import {CoolLog} from './lib/CoolLog';
import {HotLog} from './lib/HotLog';

class App extends React.Component {
    constructor() {
        ...
    }
    doLog() {
        var coolLog = new CoolLog();
        coolLog.log('Cool!');
        var hotLog = new HotLog();
        hotLog.log('Hot!');
    }
    render() {
        ...
    }
}

export default App;

lib / Log.js

export class Log {
    _log(data){
      console.log(data);
    }
}

lib / CoolLog.js

import {Log} from './lib/Log';

export class CoolLog extends Log {
    log(data){
      this._log('❄️'+data+'❄️');
    }
}

lib / HotLog.js

import {Log} from './lib/Log';

export class HotLog extends Log {
    log(data){
      this._log('🔥'+data+'🔥');
    }
}

要导入时,必须先将其导出:

export class Log {
    _log(data){
      console.log(data);
    }
}

您正在导入Log但使用_log _log在任何地方都没有定义。 改用this._log 扩展某个类时,可以使用this来使用this父类的方法。

在这里,它运作完美。

export class CoolLog extends Log {
    log(data){
        this._log('❄️'+data+'❄️');
    }
}

在此处输入图片说明

在此处了解更多有关扩展的信息

我的样本没有说明问题所在的类文件(存储在lib目录中)的结构。

lib/CoolLog.jslib/HotLog.js应该导入./Log.js而不是lib/Log.js因为它位于同一文件夹中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM