useEffect 초기렌더링시 함수를 막을려면 아래의 커스텀 훅을 사용하면 된다.
import React, { useEffect, useRef } from 'react';
const useDidMountEffect = (func, deps) => {
const didMount = useRef(false);
useEffect(() => {
if (didMount.current) func();
else didMount.current = true;
}, deps);
}
export default useDidMountEffect;
해당 커스텀훅 사용방법은
import React, { useState, useEffect } from 'react';
import useDidMountEffect from '../path/to/useDidMountEffect';
const MyComponent = (props) => {
const [state, setState] = useState({
key: false
});
useDidMountEffect(() => {
// 'key'가 변경되면 실행. 하지만 초기 렌더링에서는 실행되지 않음.
}, [state.key]);
return (
<div>
...
</div>
);
}
// ...
태클은 언제나 환영입니다. 잘못된부분이 있으면 댓글남겨주세요 :)
'React' 카테고리의 다른 글
[React] 페이지 우클릭 방지하는법 (0) | 2022.12.29 |
---|---|
Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath './lib/tokenize' is not defined by "exports" in /package.json (0) | 2022.11.22 |
React 프로젝트에 emailjs 적용하기 (0) | 2022.10.30 |
리액트(JSX)에서 특수 기호 , 특수 문자 사용방법 (0) | 2022.10.02 |