목록2024/03/13 (3)
coding etude
useEffect를 사용하여 값의 변경을 시도할 때 변경해야 할 값이 Array 또는 object 일때 간혹 useState의 setter 함수를 사용해서 값을 변경 했음에도 useEffect가 작동 하지 않을 때가 있다. 아래 예시가 작동하지 않는 예시이다. function example() { const [arr, setArr] = useState([]); //useEffect 가 동작하지 않음. useEffect(() => { console.log(arr); },[arr]); function onChangeArr(e:React.ChangeEvent):void { e.preventDefault(); let newData:number[] = arr; newData.push(e.target.value);..
nextjs 14 에서 router를 사용하기 위해서 import { useRouter } from "next/router" 을 사용하게 되면 NextRouter was not mounted 라는 오류가 나온다. 해당 기능을 import하면 정상적으로 코드가 작성은 되지만, 처음 마운트 될때 useRouter만 마운트가 안되는 것이다. 처음에는 설정을 잘못한줄 알고 홈페이지를 계속 찾았다. 홈페이지에서는 이전 버전까지는 next/router 을 사용했지만 13버전 이후 부터는 import { useRouter } from "next/navigation" 을 대신 사용하라고 설명하고 있다. 기능이 변경되면서 next/router 폴더의 기능을 삭제한듯 보인다. 그래서 페이지가 마운트 될때 해당 기능이 마운..
select 태그를 통하여 값을 선택하려고 할때, 하나의 값 선택 후 중복값을 선택 하기 위해서 select 태그의 값을 초기화 해야 할때가 있다. javascript를 사용한다면 event.target.option으로 쉽게 변경 할 수 있지만, typescript를 사용할 때는 event가 어떤 유형의 이벤트 인지 타입을 설정해 주어야 하기때문에 부적확한 타입설정으로 인하여 설정이 안되는 경우가 있다. 가장 좋은 방법은 실제로 select 태그가 어떤 타입을 가지고 있는지 console에 직어 보면 가장 정확하다. 또한 HTML처럼 qureySelecter 를 react에서 사용하는것은 지양하고 있기 때문에 타입 설정 후 useRef를 사용하여 태그를 임시 저장해 두었다가 useRef를 활용하여 변겨해..