2017-04-27 25 views

Trả lời

1

Cuối cùng tôi đã đưa ra một câu trả lời rất đơn giản

cài đặt NPM pusher-js, es6-lời hứa và đẳng cấu nạp và nhập nó như

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

Bạn có thể sử dụng các phản ứng-async-script-loader như một phần bậc cao cho việc này: https://github.com/leozdgao/react-async-script-loader

Chỉ cần cài đặt nó thông qua NPM:

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

sau đó nhập nó và mở rộng thành phần của bạn mà cần các javascripts cdn với scriptLoader cho nó các url bạn muốn bao gồm cho thành phần của bạn.

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

Bằng cách này, tệp chỉ được tải nơi bạn thực sự cần chúng. Sau khi được tải, chúng sẽ không được bao gồm lại (nếu bạn cập nhật thành phần).

Cú pháp trang trí (ES7) cũng hoạt động nếu bạn thích nó hơn là triển khai HOC, đây là tài liệu trong dự án README.

+0

lớp của tôi đã kéo dài React.Component.So cách tôi không nghĩ rằng nó hỗ trợ nhiều thừa kế –

+0

HOC không phải là một thừa kế lớp theo cách thông thường, vì vậy bạn có thể sử dụng điều này ngay cả khi bạn đang mở rộng từ React.Component. Xem ở đây để biết thêm thông tin về mẫu này: http://stackoverflow.com/documentation/reactjs/9819/higher-order-components. Lưu ý rằng không có mở rộng trong "xuất khẩu mặc định scriptLoader", nó là nhiều hơn một cuộc gọi chức năng mà có được lớp YourComponent thông qua. –

+0

nếu bạn có thể viết một đoạn mã ngắn nó sẽ được giúp đỡ rất lớn. Tôi đang bị mắc kẹt –

Các vấn đề liên quan