2017-04-27 12 views

Odpowiedz

1

Wreszcie wpadłem na bardzo prostą odpowiedź

zainstalować npm popychacza-JS-ES6 obietnicę i izomorficzna-fetch i zaimportować go jako

var Pusher=require('pusher-js'); 
var fetch=require('isomorphic-fetch'); 
require('es6-promise').polyfill(); 
1

Można użyć reagowania-asynchronicznej-script-ładowarka jako komponent wyższego rzędu na to: https://github.com/leozdgao/react-async-script-loader

Wystarczy zainstalować go przez KMP:

npm install --save react-async-script-loader 

następnie importować je i przedłużyć swój składnik, który potrzebuje cdn javascripts z scriptLoader podając adresy URL, które chciałbyś dołączyć do swojego komponentu.

import scriptLoader from 'react-async-script-loader'; 

// Your component code: 
class YourComponent extends React.Component { 
    render() { 
    return <p>{ 
     this.props.isScriptLoadSucceed ? 'Scripts loaded.' : 'Loading...' 
    }</p>; 
    } 
} 

export default scriptLoader([ 
    'https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.min.js', 
    'https://cdnjs.cloudflare.com/ajax/libs/marked/0.3.5/marked.min.js' 
])(YourComponent); 

W ten sposób pliki są ładowane tylko tam, gdzie naprawdę ich potrzebujesz. Po załadowaniu nie zostaną ponownie dołączone (jeśli zaktualizujesz komponent).

Składnia Decorator (ES7) działa również, jeśli podoba Ci się bardziej niż implementacja HOC, jest to udokumentowane w projektach README.

+0

Moja klasa już rozciąga React.Component.So jak czy mogę rozszerzyć skryptloader w tej samej klasie? Nie sądzę, że obsługuje wielokrotne dziedziczenie –

+0

HOC nie jest dziedziczenie klasy w zwykły sposób, więc można użyć tego, nawet jeśli są rozszerzenie z React.Component. Zobacz tutaj więcej informacji na temat tego wzorca: http://stackoverflow.com/documentation/reactjs/9819/higher-order-components. Zauważ, że nie ma żadnych rozszerzeń w "export default defaultLocker", jest to raczej wywołanie funkcji, które sprawiło, że klasa YourComponent została przekazana. –

+0

jeśli możesz napisać krótki fragment kodu, to byłoby bardzo pomocne. Utknąłem –

Powiązane problemy