React async script loader
A higher order React component to lazy load external javascript files. Scripts are loaded sequentially.
Note: Requires Promise polyfill
Installation
yarn add react-async-load-script
Usage
import scriptLoader from 'react-async-load-script'
scriptLoader([...scripts])(YourComponent)
Example
class D3Chart extends React.Component {
componentDidUpdate (prevProps) {
if (
prevProps.isScriptLoadSucceed !== this.props.isScriptLoadSucceed &&
this.props.isScriptLoadSucceed
) {
// Initialize d3 chart
console.log(d3)
}
}
render () {
return <div className='chart' />
}
}
export default scriptLoader([
'https://cdnjs.cloudflare.com/ajax/libs/d3/4.12.0/d3.min.js
])(D3Chart)
Properties
Your component will receive the following props
Name | Type | Description |
---|---|---|
isScriptLoaded | boolean | Indicates if scripts have been loaded |
isScriptLoadSuccess | boolean | Indicates if all scripts are loaded without error |
Test
yarn test
License
MIT