A React component to preload images. It renders a passed component during the loader phase, and renders it's children once the images have been successfully fetched.
npm install react-preload --save
var Preload = require('react-preload').Preload;
var loadingIndicator = (<div>Loading...</div>)
var images = [];
<Preload
loadingIndicator={loadingIndicator}
images={images}
autoResolveDelay={3000}
onError={this._handleImageLoadError}
onSuccess={this._handleImageLoadSuccess}
resolveOnError={true}
mountChildren={true}
>
{/* content to be rendered once loading is complete*/}
</Preload>
propTypes: {
//Rendered on success
children: React.PropTypes.node.isRequired,
//Rendered during load
loadingIndicator: React.PropTypes.node.isRequired,
//Array of image urls to be preloaded
images: React.PropTypes.array,
//If set, the preloader will automatically show
//the children content after this amount of time
autoResolveDelay: React.PropTypes.number,
//Error callback. Is passed the error
onError: React.PropTypes.func,
//Success callback
onSuccess: React.PropTypes.func,
//Whether or not we should still show the content
//even if there is a preloading error
resolveOnError: React.PropTypes.bool
//Whether or not we should mount the child content after
//images have finished loading (or after autoResolveDelay)
mountChildren: React.PropTypes.bool
}
This module also exposes ImageCache
and ImageHelper
which can be used to preload images
directly, and can be accessed via require('react-preload').ImageCache
and
require('react-preload').ImageHelper
respectively.