ESLint์ ์ํด ๋ฐ์ํ ์๋ฌ์ ๋๋ค.
๋ฌธ์
useEffect(() => {
if (!response) {
return setLoading(false);
}
api();
...
}
useEffect ํ ์์ return setState๋ฅผ ์คฌ๋๋ ํจ์ ์์ฒด์์ ์๋ฌ๊ฐ ๋ฐ์ํฉ๋๋ค.
๊ณต์ ๋ฌธ์ ์ฐพ์๋ณด๋, ํด๋น ๋ฌธ์ ์ ๋ฐ์์์ธ์ ์๋์ ๊ฐ์ต๋๋ค
- return ๋ฌธ์ ์ข ๋ฃํ๊ธฐ ์ ์ ์คํ๋์ง ์์ต๋๋ค. (it does not execute a return statement before it exits)
- ๊ฐ์ ๋ช ์์ ์ผ๋ก ์ง์ ํ์ง ์์ return๋ฌธ์ ์คํํฉ๋๋ค. (it executes return which does not specify a value explicitly)
- ์ ์๋์ง ์์ return์ ์คํํฉ๋๋ค. (it executes return undefined)
- return void ๋ค์ ์์ ์คํํฉ๋๋ค. (it executes return void followed by an expression (for example, a function call))
- return ๋ค์ ์ ์๋์ง ์์ ๊ฒ์ผ๋ก ํ๊ฐ๋๋ ๋ค๋ฅธ ์์ด ์คํ๋ฉ๋๋ค.
(it executes return followed by any other expression which evaluates to undefined)
๋ฒ์ญ๊ธฐ๋ฅผ ๋๋ฆฐ ๊ฑฐ๋ผ ์ ํํ๊ฒ ํด์๋์ง๋ ์์ง๋ง, ์๋ง ์ ์ํฉ ๊ฐ์ ๊ฒฝ์ฐ๋ 4๋ฒ์ ํด๋นํ๋ ๊ฑฐ ๊ฐ์ต๋๋ค.
useEffect์์ callback์ผ๋ก ๋ฐ์ ํจ์๋ void์ธ๋ฐ, return ํ๋ฉด์ setState๊ฐ ์คํ๋๋ ๊ฒ ๋๋ฌธ์ ESLint์์ ์๋ฌ๋ก ์ก์ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค.
ํด๊ฒฐ๋ฐฉ์
useEffect(() => {
if (!response) {
setLoading(false);
return;
}
api();
...
}
๊ฐ๋จํ๊ฒ setState๋ฅผ ์คํํ ๋ค, retrun ์ํด์ผ๋ก์จ useEffect๋ฅผ ์ข ๋ฃ์์ผฐ์ต๋๋ค.