개발자

next.js에서 img onload가 가끔 실행이 안됩니다ㅠ

2022년 10월 17일조회 635

next.js에서 HTML img element의 onload가 가끔 실행이 안되는데 이유를 아시는 분 계신가요? img의 onload에 isLoading 값을 바꿔주는 콜백 함수를 넣었는데, 가끔 실행이 안되어서 무한 로딩 화면이 보여지더라구요. 간략하게나마 코드 첨부해봅니다. 도와주세요 선생님들 ㅠㅠ import { useState } from "react"; export default function Home() { const [isLoading, setIsLoading] = useState(true); const hello = () => { console.log("loaded") // 왜 안되지... // setIsLoading(false) } return ( <div className="App"> {isLoading && <p>Loading...</p>} <img onLoad={() => hello()} src="이미지 url" /> </div> ); }

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 1

손정현님의 프로필 사진

안녕하세요! Next.js를 사용하신다면 Next.js의 Image 컴포넌트를 사용하는걸 추천드립니다. 각종 최적화 기법들이 적용된 것으로 알고 있습니다. img.onload는 경우에 따라 실행되지 않을 수 있다고 합니다. ex) 브라우저 캐시에 이미지가 남아있을 경우, onload를 수행하지 않고 바로 렌더가 되어버린다고 합니다. - https://nextjs.org/docs/api-reference/next/image - https://stackoverflow.com/questions/12354865/image-onload-event-and-browser-cache - https://stackoverflow.com/questions/67969732/onload-doesnt-fire-on-cached-images - https://stackoverflow.com/questions/59787642/nextjs-images-loaded-from-cache-dont-trigger-the-onload-event

profile picture

익명

작성자

2022년 10월 18일

앗 그렇군요!! 링크 걸어주신 문서들도 확인해 보겠습니다 정말 감사합니다ㅠㅠ

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로

지금 가입하면 모든 질문의 답변을 볼 수 있어요!