1차 프로젝트 Day 5🔥
(meeting log와 구현한 이벤트/ onChange/actionTab event 세션 정리)
아래 굵은 글씨 부분이 내가 구현한 /구현할 부분
input
의 이름을 지정 해주면 값 에 접근할 수 있다.class index extends Component {
state = {
email: '',
password: '',
};
changeHandler = (e) => {
this.setState({ [e.target.name]: e.target.value });
};
//계산된 속성명 대괄호 속성을 사용해서 키값을 변경할 수잇다.
render() {
return (
<div className='onchange-wrapper'>
<div className='top'>
email: <input name='email'
onChange={this.changeHandler} />
password: <input name='password'
onChange={this.changeHandler} />
import First from './components/First';
import Second from './components/Second';
import Third from './components/Third';
const obj = {
0: <First />,
1: <Second />,
2: <Third />,
};
state
에 시작하는 activeTab 값을 0
으로 지정해 준다.export default class App extends Component {
state = {
activeTab: 0,
};
id
로 받아, 클릭될 때 마다 해당 숫자로 id 값을 업데이트 해준다. handleClick = (id) => {
this.setState({ activeTab: id });
};
{obj[this.state.activeTab]}
id 값으로 넘겨주는 숫자를 가진 key 값의 value인 각각의 component를 출력하도록 설정 해놓으면 된다! render() {
return (
<div className='wrapper'>
<ul className='tabs'>
<li className = {this.state.activeTab===0? "active" : "" } onClick={() => this.handleClick(0)}>First</li>
<li className = {this.state.activeTab===1? "active" : "" } onClick={() => this.handleClick(1)}>Second</li>
<li className = {this.state.activeTab===2? "active" : "" } onClick={() => this.handleClick(2)}>Third</li>
</ul>
<div className='contents'>{obj[this.state.activeTab]}</div>
</div>
);
}
}