React 에서 SetInterval 로 state 변화주기

Front-end/React.js

React 에서 SetInterval 로 state 변화주기

조커린 2020. 1. 21. 15:28

리액트에서 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 업데이트가 가능하다.