ํ์ฌ ๊ตฌํํ๊ณ ์์๋ ๊ธฐ๋ฅ์ด
Next.js์์ ํฐ์น ์ด๋ฒคํธ ๋ฐ์ ์ ์์ผ๋ก ์ค์์ดํ๋๋ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ณ ์์๋ค.
์๋ฌ ๋ฐ์ ๋ด์ฉ
e.touches[0]์์ ๊ฐ์ฒด๊ฐ 'undefined' ์ธ ๊ฒ ๊ฐ๋ค๋ ์๋ฌ๊ฐ ๋ฐ์...
๊ทผ๋ฐ ์๋์ ์๋จ.
// ์ค์์ดํ ๊ด๋ จ ํธ๋ค๋ฌ -> ํฐ์น ์ข
๋ฃ ์ง์
const handleTouchMove = (e: React.TouchEvent<HTMLDivElement>): void => {
if (e.touches && e.touches.length > 0) {
touchEndX.current = e.touches[0].clientX;
}
};

์๋ฌ ํด๊ฒฐ ๋ฐฉ๋ฒ
๋ ๋ณํฉ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํด์ ํด๊ฒฐํ๋ค.
// ์ค์์ดํ ๊ด๋ จ ํธ๋ค๋ฌ -> ํฐ์น ์ข
๋ฃ ์ง์
const handleTouchStart = (e: React.TouchEvent<HTMLDivElement>): void => {
const clientX = e.touches?.[0]?.clientX ?? 0; // touches๊ฐ ์์ผ๋ฉด 0์ผ๋ก ์ค์
touchStartX.current = clientX;
};
์๋ฌ ๋ฐ์ ์ด์
1. ํ์ ์คํฌ๋ฆฝํธ์ e.touches ๊ฐ ํญ์ ์กด์ฌํ๋ค๊ณ ๊ฐ์ ํ์ง ์๋๋ค.
์ฆ, ์ด๋ฒคํธ๊ฐ ์ ๋๋ก ๋ฐ์ํ์ง ์์๊ฑฐ๋ ์์ํ์ง ๋ชปํ ์ํฉ์์ touche๊ฐ undefined๊ฐ ๋ ๊ฐ๋ฅ์ฑ์ ๊ณ ๋ คํจ
-> ์ด๋ก ์ธํด ํ์ ์คํฌ๋ฆฝํธ๋ e.touches[0]์ ์ง์ ์ ๊ทผํ ๋ undefined ๊ฐ๋ฅ์ฑ์ ๊ฒฝ๊ณ ํจ
2. ๋ ๋ณํฉ ์ฐ์ฐ์์ ์ญํ
๋ ๋ณํฉ ์ฐ์ฐ์๋
e.touches?.[0]?.clientX ?? 0 ์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ฌ์ฉ๋จ
์ด ํํ์ ๋ค์์ ์๋ฏธํ๋ค.
e.touches๊ฐ undefined๊ฐ ์๋์ง ํ์ธํ๊ณ , ์๋๋ผ๋ฉด ์ฒซ ๋ฒ์งธ ํฐ์น ์ด๋ฒคํธ์ ClientX์ ์ ๊ทผํ๋ค.
e.touches๊ฐ undefined๋ผ๋ฉด ?? 0 ์ ์ํด ๊ธฐ๋ณธ๊ฐ 0 ํ ๋น๋จ
์ด๋ฅผ ํตํด ํ์ ์คํฌ๋ฆฝํธ๊ฐ ์์ ํ๊ฒ clientX ๊ฐ์ ๊ฐ์ ธ์ฌ ์ ์๋๋ก ๋ณด์ฅํ๊ณ , ๊ฒฝ๊ณ ๋ฅผ ์ ๊ฑฐํ ์ ์์ต๋๋ค.
[Javascript] ๋ ๋ณํฉ์ฐ์ฐ์ '??'์ ์ต์ ๋ ์ฒด์ด๋ '?.'
์๋ฐ์คํฌ๋ฆฝํธ์ '?' ES2020์์ ๋์ ๋ ์๋ก์ด ๋ฌธ๋ฒ๋ค ์ค ์ต์ ๋ ์ฒด์ด๋ ์ฐ์ฐ์ ?. ์ null ๋ณํฉ ์ฐ์ฐ์ ?? ๋ ๋ชจ๋ ๋ฌผ์ํ๋ฅผ ์ด๋ค. ์ฌ์ฉ๋๋ ๋ฐฉ์๋ null์ด๋ undefined ๊ฐ์ ์ฒดํฌํ ์ ์๋ค๋ ์ ์์ ๋น
i-ten.tistory.com
'DEV > Error' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [vsCode] html ํ๊ทธ ์๋์์ฑ ์๋ ๋ (0) | 2024.03.26 |
|---|---|
| [Error/eclipse] ์ดํด๋ฆฝ์ค ํ๊ธ ๊นจ์ง ์ค๋ฅ (0) | 2024.02.08 |