React 💎
state와 event 보충
<div style = {{color : "blue"}}>
중괄호 두개 , 원하는 css 스타일 적용
inline스타일은 유지 보수할때 좋지 않고, 최대한 지양해야 한다.
inline style로 적용하는 color 값은 항상 ""
안에 감싼다.
this.state = {
color : "white"
}
<div style = {{color : this.state.color}}>
changeHandler () => {
this.setState ({color : "blue"})
}
<input onChange={this.changeHandler}>
항상 console.log 제대로 걸리는지 확인하기
이 값 아니면 저 값
이어야 하니, boolean 값이 적합하다.colorState :true
로 기본 값을 셋팅하고 this.state = {
colorState: true,
}
<div style={{ color: this.state.colorState ? "blue" : "red" }}>
this.state = {
comments : [],
comment : ""
}
this.onChange
함수를 걸어주고 onChange
함수에 키값이 들어오면 그 value를 this.setState
를 통해 변경되도록 만들어 준다. changeHandler = (e) =>{
// e.preventDefault();
this.setState ({comment : e.target.value})
// if (e.keycode === 13) {
// console.log("Dd")
}
<textarea onChange = {this.changeHandler} onKeyUp={this.handleKeyPress} className="comment-field" placeholder="댓글 달기..."></textarea>
게시
버튼을 눌렀을때 작성된 값이 댓글로 보여질수 있도록 Onclick함수를 입력해준다.<button onClick = {this.clickHandler} className="click-to-post" type="submit">게시</button>
clickHandler = () => {
let comments = this.state.comments
let comment = this.state.comment
comments.push(comment)
this.setState({comments : comments})
}
map 함수
를 사용하여 배열에 각각 comment인자를 주고, 해당 코멘트를 출력해내는 코드를 입력하여 { } 안에 지정해주면 끄읕! {this.state.comments.map ((comment) => {
return ( <span><b>joanne_jhk</b> {comment} </span> ) } ) }
onKeyUp
에 handleKeyPress
method를 입력한다<textarea onChange = {this.changeHandler} onKeyUp={this.handleKeyPress} className="comment-field" placeholder="댓글 달기..."></textarea>
keyCode가 13
일 시 ('Enter' 키의 keyCode는 13이다) handleKeyPress = (e) => {
e.keyCode === 13 && this.clickHandler()
}
&&
를 사용하여 '항상 true일때 이거해'라는 true or false
값에 사용할 수 있다.