React Image Fallback exists for those times that you're just not sure an image will be there. See a simple demo here
npm install react-image-fallback
A string represent the url to your primary image.
A string representing the image you want to fallback to if your primary image is not there. Optionally this can also be passed in as a react element. This can also be passed in as an array of string srcs or react elements, the component will attempt to keep trying srcs until a loadable src is found. It should be noted that a react element will always be treated as a loadable src.
The image to show before your src
or fallbackImage
load. Can optionally be passed in as a react element.
A callback called if initial image loads successfully, will be called with successful image url.
A callback called if initial image load fails, will be called with failing image url.
A manually created image object. Used when the ReactImageFallback component is not being mounted right away, but the image should be already loaded. To preload the image, you just have to create the object and define its src (should be the same as the src prop you pass to ReactImageFallback), it doesn't have to be mounted in DOM:
const img = new window.Image();
img.src = 'my-image.png';
This component also utilizes jsx spread attributes to pass along custom image attributes such as alt tags and className. Only valid dom props will be spread to the image tag.
import React From "react";
import ReactImageFallback from "react-image-fallback";
export default class ShowImage extends React.Component {
render() {
return (
<div>
<ReactImageFallback
src="my-image.png"
fallbackImage="my-backup.png"
initialImage="loader.gif"
alt="cool image should be here"
className="my-image" />
</div>
);
}
}
Copyright (C) 2016 Social Tables, Inc. (https://www.socialtables.com) All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.