Next.js
NextJS Image에서 fallback 활용하기
Kir93
2021. 9. 16. 12:24
728x90
반응형
NextJS@10 버전에서 나온 Image태그는 만족스러운 성능을 제공해 주지만 아쉬운 경우도 있습니다.
만약 내가 설정한 이미지가 존재하지 않을 때 대체 이미지를 보여주는 방법을 제공하지 않는다는 것이다.
나는 아래와 같은 방법을 활용하여 이미지가 존재하지 않을 때 이미지를 설정해 주었다.
import React, { useState } from 'react';
import Image from 'next/image';
const ImageFallback = (props) => {
const { src, fallbackSrc, ...others } = props;
const [imgSrc, setImgSrc] = useState(false);
const [oldSrc, setOldSrc] = useState(src);
if (oldSrc !== src) {
setImgSrc(false);
setOldSrc(src);
}
return (
<Image
{...others}
src={imgSrc ? fallbackSrc : src}
onError={() => {
setImgSrc(true);
}}
/>
);
};
export default ImageFallback;
이미지의 props들은 모두 확장을 통해 가지고 온 뒤 Image태그의 onError속성을 활용하여 변경해 주는 방법을 사용했다.
반응형