1import React, {useEffect, useState} from 'react'; 2import FastImage, {FastImageProps} from 'react-native-fast-image'; 3 4interface IFastImageProps { 5 style: FastImageProps['style']; 6 defaultSource?: FastImageProps['defaultSource']; 7 emptySrc?: number; 8 uri?: string; 9} 10export default function (props: IFastImageProps) { 11 const {style, emptySrc, uri, defaultSource} = props ?? {}; 12 const [isError, setIsError] = useState(false); 13 const source = uri 14 ? { 15 uri, 16 } 17 : emptySrc; 18 19 useEffect(() => { 20 setIsError(false); 21 }, [uri]); 22 return ( 23 <FastImage 24 style={style} 25 source={isError ? emptySrc : source} 26 onError={() => { 27 setIsError(true); 28 }} 29 defaultSource={defaultSource} 30 /> 31 ); 32} 33