2017-04-27 111 views

回答

1

最後我想出了一個非常簡單的答案

安裝NPM推-JS,ES6-承諾,同構取並導入它作爲

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

可以使用反應 - 異步腳本加載器作爲一個高階組件這個:https://github.com/leozdgao/react-async-script-loader

通過NPM只要安裝它:

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

然後將它導入和擴展組件需要帶有scriptLoader的cdn javascripts爲您的組件添加了您想要包含的url。

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); 

這樣,文件只在你真正需要它們的地方加載。一旦加載,它們不會再被包含(如果更新組件)。

裝飾者(ES7)的語法也可以工作,如果你喜歡它,而不是HOC實現,這在項目README中有記錄。

+0

我的類已經擴展React.Component.So如何我是否將scriptloader擴展到同一個類中?我不認爲它支持多重繼承 –

+0

HOC不是通常的類繼承,所以即使從React.Component繼承,也可以使用它。請參閱此處瞭解有關此模式的更多信息:http://stackoverflow.com/documentation/reactjs/9819/higher-order-components。請注意,「export default scriptLoader」中沒有擴展,它更像是一個傳遞YourComponent類的函數調用。 –

+0

如果你可以寫一個簡短的代碼片斷它將失去很大的幫助。我卡住了 –

相關問題