리액트에서 setinterval로 state값을 변경해서 렌더링시 componentdidmount, componentwill~~에도
함수와 감지하는 소스를 만들어주어야함
useEffect내부에 setinterval 을 넣고 두 번째 인자로 빈배열을 넣어주고
return () => { clearInterval} 필요치 않을 때 없애준다.
const [adsImg, setadsImg ] = React.useState(false) //상단에 state 변수 하나 만들어 놓음
React.useEffect(() => {
//data관련 함수~
let id = setInterval((e) => {
setadsImg(adsImg => !adsImg)
},8000);
return () => {
fetching = false;
clearInterval(id);
}
}, [])
변수 토글을 이용해 css로 대부분 처리
{/* 광고 이미지 영역 */}
<div className="pconly-b ads-wrap" >
<ul>
{adsImg ? <li><a href="" target="_blank"><img src="/static/img/ads-1.png"></img></a></li>
: <li> <a href="" target="_blank"><img src="/static/img/ads-2.png"></img></a></li>
}
</ul>
</div>
비슷하게 다른 방식으로 state 업데이트가 가능하다.
'Front-end > React.js' 카테고리의 다른 글
Toast UI Editor (TUI Editor) 에서 이미지 업로드시 base64 문자열 제거하기 (14) | 2021.06.29 |
---|---|
[React] Ag-grid 를 이용한 floating header 제작하기 (0) | 2020.01.21 |
React material UI를 이용해 커스텀 툴팁 만들기 (0) | 2020.01.21 |
React material UI 를 이용해 커스텀 드롭다운 만들기 (0) | 2020.01.21 |