className={
this.state.clicked ? (this.state.validated ? "success" : "failure")
: ""
}
이 코드는 조건부로 css클래스를 지정하는 데 사용된다.
클래스 이름을 동적으로 설정되는 데 사용되는데, 'className' 속성을 사용하여 요소에 적용되는 css클래스를 결정하는 것이다.
- 'this.state.clicked': 컴포넌트의 'state'객체에서 'clicked'라는 상태 값의 참/거짓 판명
- 'this.state.validated': 또 다른 상태 값인 'validated'의 참/거짓 판명
조건에 따라서 다음과 같은 클래스가 적용된다.
- 'success': 'clicked' 참 + 'validated' 참
- 'failure': 'clicked' 참 + 'validated' 거짓
- " (아무 클래스도 적용되지 않음): 'clicked' 거짓
.success{
background-color: lightgreen;
}
.failure{
background-color: lightcoral;
}
.css를 위와 같이 작성해주면 된다.
처음 코드가 이렇게 생겨서 보고 당황했지만 천천히 생각하면 내가 해결할 수 있는 수준이었다.
코드가 어떤 모양으로 짜 있는지도 중요한 사안!
'웹 프론트엔드 > React' 카테고리의 다른 글
리액트를 다루는 기술 #8 Hooks(1) (0) | 2024.02.26 |
---|---|
리액트를 다루는 기술 #5 ref ~ #6 map() 함수 (2) | 2024.02.16 |
리액트를 다루는 기술 #4 이벤트 핸들링 (0) | 2024.02.15 |
리액트를 다루는 기술 #3 컴포넌트 (0) | 2024.02.13 |
리액트를 다루는 기술 #2 JSX (0) | 2024.02.10 |