이벤트 핸들링 & 타임 컨트롤
1. 이벤트 핸들링
1.1 상태가 필요한 요소
1.1.1 하고자하는 것
1.1.2 구성
import './AppNavigation.scss'
import React from 'react'
class AppNavigation extends React.Component {
constructor(props) {
super(props)
this.state = {
// hidden 속성을 제어하는 상태
isOpen: false,
// is-active를 추가 제거할 수 있도록 className 상태 설정
navClassName: 'appNavigation',
}
}
handleOpenNav = () => {
this.setState({
isOpen: true,
navClassName: 'appNavigation is-active'
})
}
handleCloseNav = () => {
this.setState({
isOpen: false,
navClassName: 'appNavigation',
})
}
render() {
return (
<>
<button
onClick={this.handleOpenNav}
className="resetButton is-open-menu"
type="button"
title="메뉴 열기"
aria-label="메뉴 열기"
>
<span className="ir"></span>
</button>
<nav className={this.state.navClassName} hidden={!this.state.isOpen}>
<h2 className="a11yHidden">메인 메뉴</h2>
<ul className="resetList">
{ ** }
</ul>
<button
onClick={this.handleCloseNav}
className="resetButton is-close-menu"
type="button"
title="메뉴 닫기"
aria-label="메뉴 닫기"
>
<span className="close" aria-hidden="true">
×
</span>
</button>
</nav>
</>
)
}
}
export default AppNavigation
2. 타임 컨트롤
2.1 문제
2.2 해결
3. <nav>요소에 hidden 속성?
Last updated