Render an image in React.
npm install --save react-render-image
// OR
yarn add react-render-image
import React from 'react';
import {Image, useImage} from 'react-render-image';
const {image, loaded, errored} = useImage({src});
<Image src={src} loading="🔄" loaded="✅" errored="❌"/>
<Image src={src} loading="🔄" errored="❌">
{({image, loaded, errored}) => {
return <img src={image.src} width={image.width} height={image.height}/>;
}}
</Image>
string
The image URI.
string
The image URIs to use given various conditions. See the MDN for further detail.
string
The width of the image given various conditions. See the MDN for further detail.
React.Node
Rendered when the image is loading
.
React.Node
Rendered when the image is loaded
.
React.Node
Rendered when the image is errored
.
({ image?: Image; status: enum, loaded: boolean; errored: boolean; }) => React.Node
Called to render something when the image is loading
, loaded
or errored
.
Parameters:
status
- An enum indicating whether the image is loading, loaded or errored.loaded
- Aboolean
indicating whether the image has loaded.errored
- Aboolean
indicating whether the image has errored.image
- TheImage
object. This can be used to inspect thewidth
andheight
of the image, or it can be drawn onto a canvas usingctx.drawImage()
.
Returns:
RectNode
() => void
Called when the image has been loaded.
() => void
Called when the image cannot be loaded.
useImage({ src?: string; srcset: string[]; sizes: string[]; }) => {status, image?: Image}
Parameters:
src
- An enum indicating whether the image is loading, loaded or errored.srcset
- The image URIs to use given various conditions. See the MDN for further detail.sizes
- The image URIs to use given various conditions. See the MDN for further detail.
Returns:
status
- An enum indicating whether the image is loading, loaded or errored.loaded
- Aboolean
indicating whether the image has loaded.errored
- Aboolean
indicating whether the image has erroredimage
- TheImage
object. This can be used to inspect thewidth
andheight
of the image, or it can be drawn onto a canvas usingctx.drawImage()
.