강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

dvdve님의 프로필 이미지
dvdve

작성한 질문수

핸즈온 리액트 네이티브

4.12 :: useEffect Hook으로 원하는 작업 실행하기

마지막 useEffect 부분 질문드립니다.

해결된 질문

작성

·

73

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

  useEffect(() => {setDisabled(!email || !password);   }, [email, password]);

여기서

setDisabled(!email || !password);

 

!email || !password 이부분이 잘 이해가 안가서 질문드립니다!

답변 2

0

김범준님의 프로필 이미지
김범준
지식공유자

안녕하세요,

 

NOT 연산과 OR 연산을 확인하면 이해할 수 있습니다.

NOT: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_NOT

OR: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_OR

 

email과 password는 문자열이고, 빈 문자열은 false로 처리됩니다.

따라서, !email은 email이 입력되어 있지 않으면 true로 처리되고, !password는 password가 입력되어 있지 않을때 true로 처리됩니다.

 

OR(||)는 둘 중 하나만 true여도 true가 되기 때문에, !email || !password는 email 혹은 password중 하나만 빈 값이어도 결과가 true가 됩니다.

 

감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다. dvdve님.

useEffect 안의 setDisabled(!email || !password); 부분에 대해 설명드리겠습니다.

이 코드는 이메일과 비밀번호 입력 상태에 따라 버튼을 활성화하거나 비활성화하는 로직입니다. 구체적으로는 다음과 같습니다:

  • !email || !password: 이메일이나 비밀번호 중 하나라도 비어 있을 때 참(true)이 되는 논리식입니다. 즉, 입력란 중 하나라도 값이 없으면 참이 됩니다.
  • setDisabled: 이 함수는 버튼 등의 요소가 비활성화될지 여부를 설정하는 함수입니다. 위 논리식의 결과가 참이면 setDisabled(true)로 작동하여 버튼을 비활성화하고, 거짓이면 setDisabled(false)로 작동하여 버튼을 활성화합니다.

그렇기 때문에 이메일과 비밀번호가 모두 입력되지 않은 상태일 때 버튼을 비활성화하여 사용자에게 비어 있는 입력란을 모두 채우도록 강제할 수 있습니다.

유사한 질문과 답변을 통해 더욱 자세한 설명을 확인하고 싶으시다면, 아래 URL을 참고하시면 도움이 될 수 있을 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

dvdve님의 프로필 이미지
dvdve

작성한 질문수

질문하기