簡體   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