if (userOwnData?.state === "like") {
return setLikes(true);
} else if (userOwnData?.state === "dislike") {
return setDislikes(true);
}
위와 같은 코드로 userOwnData가 존재하고 그의 state에 따라 각각 useState로 설정해 둔 likes/dislikes의 boolean값을 true/false로 설정하게 만들어 두었다.
이 상태에서 likes/dislikes값이 true일 경우 버튼이 비활성화 되어 보이게(유저가 이미 해당 버튼을 눌렀음을 상기 시키기 위해) 하기 위해서 어떻게 해야 할지 고민을 해 보았다.
1. useRef 를 이용해 해당 button을 조정한다.
2. button의 disabled값을 likes/dislikes의 boolean값으로 설정한다.
이정도로 방법을 생각해 냈는데, 굳이 useRef를 추가하지 않아도 주어진 코드에 버튼에 disabled 값만 입력하면 되는 아주 쉬운 방법인 2번을 따랐다.
<button disabled={likes}>
또가요
</button>
예시는 위와 같다. 이제 disabled 는 likes의 값이 true인지 false인지 그 여부에 따라 변경된다.
예를 들어 likes의 값이true일 경우에는 disabled 값도 true가 되기 때문에 이가 작동해 버튼이 비활성화되고, false일 경우에는 disabled 값이 false 로 작동하지 않기 때문에 버튼이 활성화 된다.
오늘도 잘 해냈다!
'TIL' 카테고리의 다른 글
230823) input type="file"로 사용 시 특정 형식 파일만 업로드 할 수 있게 하는 방법 (0) | 2023.08.23 |
---|---|
230822) onClick 내부에서 useNavigate를 직접 호출해 사용할 경우 작동 되지 않는 현상 (0) | 2023.08.22 |
230818) Firebase Auth로 유저를 관리할 때 auth 에서 제공하는 정보 외 다른 정보 넣기 (0) | 2023.08.18 |
230817) <textarea>태그의 readonly 기능과 <input>의 여러 기능 (0) | 2023.08.17 |
230816) S.A / Wireframe 을 작성하며 (0) | 2023.08.17 |