1. 로그인 버튼 눌렀을 떄, 사용자가 입력한 id와 pw 가 콘솔에 나올 수 있게 해주세요.
2. 사용자가 입력한 id와 pw가 기준(id- '@'포함/ pw-5글자 이상)에 맞는 경우에만 로그인 버튼 색상이 활성화 될 수 있도록 해주세요.
3. 메인 페이지 : 사용자가 댓글 입력 후 Enter를 누르거나 왼쪽의 버튼 클릭시 댓글이 추가되도록 구현.
// 부모 컴포넌트 Feeds
class Feeds extends Component {
constructor(){
super()
this.state = {
replyList : [ ],
value : "",
}
}
setValue = (event) => {
this.setState({
value : event.target.value
})
}
pushList = (event) => {
this.setState({
replyList: this.state.replyList.concat(this.state.value)
})
}
pushListKey = (event) => {
if(event.key === 'Enter'){
this.setState({
replyList: this.state.replyList.concat(this.state.value)
})
}
}
render() {
return(
(중략)
<ul>
<Reply replyList={this.state.replyList} />
</ul>
<div className='commenting'>
<div>
<input className='commenting_input' type="text" placeholder="댓글달기..."
onChange={this.setValue}
onKeyPress={this.pushListKey} />
</div>
<button className='commenting_button' onClick={this.pushList}>게시</button>
</div>
// 자식 컴포넌트 Reply
class Reply extends Component {
constructor(){
super()
}
render(){
return(
this.props.replyList.map( (reply, idx) =>{
return <li key={idx}>{reply}</li>
})
)
}
}
이를 해결하기 위해 다음과 같은 알고리즘을 설정하였다.