오늘 한 일

  • 아직 API도 붙이지 않은(그냥 내가 알아서 원래 있는 API 적당히 갖다 붙여놓고 시험 중인) 페이지만 계속 만지작거렸다. 오늘 안에 끝나지 않을까 싶어서 아침 스크럼 때 그렇게 말했는데 웬걸, 하루 웬종일 시간 다 잡아먹고 결국은 오늘을 넘기게 되었다. 언제나 그랬듯이...
  • 게시판과 같은 종류의 페이지를 만드는 건 여러 프로젝트를 거치며 쉽게 할 수 있다고 생각했는데, 지금껏 해 온 것과는 조금 다른 형태를 다루게 되니 마냥 새롭기만 하다. 회사 일이다 보니 조금 더 신중히 작업하게 되는 것도 같다.
  • DB에 저장된 항목들이 input(text, file)이나 select로 알아서 나열되어야 한다. 당연하게도, DB에 저장된 그 항목들은 언제든지 개수가 늘어날 수도, 줄어들 수도, 내용이 바뀔 수도 있다. 그러다 보니 input과 select가 어떤 순서로 몇 개가 나열될지는 알 수 없다. 그런 상황에서 useRef로 해당 태그의 값들을 가져오고 싶은데, 일일이 선언하자니 말도 안되는 짓인 것 같았다. 만약 input 태그가 극단적으로 많아져서 100개라면!? 1억개라면!? (생활코딩?ㅋㅋㅋ)

오늘 배운 것

  • 그래서 찾아온, useRef의 초깃값을 애초에 배열로 줘버리고 배열로 관리하기 링크.
 

useRef() 여러개 관리 하기

웬만한 컴포넌트에서 거의 다들 useState 혹은 useRef 를 많이 쓸 것이다. useRef로 각각의 input 타입들에 접근해 값을 뽑아내려고 했는데 그 개수가 조금 많았다. const userRef = useRef(); const phoneRef = u..

devilfront.tistory.com

오늘 한 일

  • 오우.. 회사에서 하루종일 맥북만 붙잡고 있다가 집에 돌아와서 윈도우를 쓰자니 키보드 단축키부터 헷갈리기 시작한다. 이것이 맥북의 힘인가! 역시 맥북을 사야 하나!
  • 오늘은 어제까지 대강 뷰를 잡아둔 페이지에 실질적으로 DB에 들어 있는 데이터들을 연동하는 작업을 시작했다. DB에 들어가는 데이터에 따라 화면에 나타나는 내용이 달라지는 방식인데, 어제까지 더미 데이터를 씌워놓은 뷰에 갑작스레(?) DB를 얹으려니 처음에 조금 헤맸다. 프로젝트 할 때는 사전에 약속해둔 API 명세를 참고해서 그대로 잘 찍혀 나오는지만 확인해가면서 처리했었는데, 이번에는 API고 뭐고 없다. 그냥 일단 하는 거다.
  • 그러다 보니 어디서부터 시작해야 하는지 조금 막막해져서 한동안 삽질을 계속하다가 어느 순간 정신을 차린 나를 발견할 수 있었다. 오오 이것도 회사의 은총인가요...!
  • 근데 그러다가도 별 희한한 데서 시간을 무지 끌었다. select 태그에서 별도의 option을 선택하지 않아도 처음부터 특정 값을 보여주는, 그러나 사용자가 다른 값을 선택한다면 그걸로 바뀔 수도 있는, 그런 모양새를 만들고 싶었다. option 태그에 selected 속성을 주자니 리액트에서 경고 문구를 띄우며 option에 selected를 주는 대신 select에 value나 defaultValue를 주라고 했다. 그래서 평소 하던 대로 'css select default value' 등으로 구글링했더니, 하나같이 select에 초깃값을 지정해주면서도 사용자의 선택을 허용하고 싶다면 defaultValue 속성을 적용하라는 것이었다. 여기저기서 같은 해결책을 제시하기에 철석같이 믿고 그렇게 했는데 전혀 적용이 안됐다. 한참의 삽질 끝에 설마설마 하며 검색한 결과, select 태그에는 defaultValue 속성이 없다^^ 이 사람들아...

오늘 배운 것

  • 그래서 적는 MDN의 select 태그 정보 링크. 바보같은 나 자신, 진작 검색했어야 했다.
 

요소는 옵션 메뉴를 제공하는 컨트롤을 나타냅니다.

developer.mozilla.org

+ Recent posts