주의사항
onChange={(e) => {console.log(e)}}
import React, {Component} from 'react';
class EventComponent extends Component{
state = {message:''}
render(){
return (<div>
/** 텍스트를 변경 시(값 입력 시) message에 값이 담기게 된다 */
<input type="text" name="message" value={this.state.message}
onChange={(e) => {this.setState({message : e.target.value})}}/>
/** 버튼 클릭 시 텍스트 message를 경고창에 띄워준 후 message를 공백으로 처리한다 */
<button onClick = {() => {alert(this.state.message);
this.setState({ message : '' });
}}>확인</button>
</div>);
}
}
export default EventComponent;
import React, {Component} from 'react';
class EventComponent extends Component{
state = {message:''}
constructor(props){
super(props);
/** 특정 요소의 이벤트로 등록하는 과정에서 메서드와 this와의 관계가 끊어질 수 있기에 바인딩을 수행한다. */
this.handleChange = this.handleChange.bind(this);
this.handleClick = this.handleClick.bind(this);
}
handleChange(e){
this.setState({message : e.target.value})
}
handleClick(){
alert(this.state.message);
this.setState({message : ''});
}
render(){
return (<div>
/** 텍스트를 변경 시(값 입력 시) message에 값이 담기게 된다 */
<input type="text" name="message" value={this.state.message}
onChange={this.handleChange}/>
/** 버튼 클릭 시 텍스트 message를 경고창에 띄워준 후 message를 공백으로 처리한다 */
<button onClick = {this.handleClick}}>확인</button>
</div>);
}
}
export default EventComponent;
import React, {Component} from 'react';
class EventComponent extends Component{
state = {message:''}
handleChange = (e) => {
this.setState({message : e.target.value})
}
handleClick = () => {
alert(this.state.message);
this.setState({message : ''});
}
render(){
return (<div>
/** 텍스트를 변경 시(값 입력 시) message에 값이 담기게 된다 */
<input type="text" name="message" value={this.state.message}
onChange={this.handleChange}/>
/** 버튼 클릭 시 텍스트 message를 경고창에 띄워준 후 message를 공백으로 처리한다 */
<button onClick = {this.handleClick}}>확인</button>
</div>);
}
}
export default EventComponent;
handleChange = (e) => {
// []로 설정하면 그 안에 넣은 래퍼런스가 가리키는 실제 값이 key로 사용이 된다.
// 즉 message : 'value입니다.' 형식으로 들어가게 되는 것이다.
[e.target.name] : e.target.value
}
import React, {Component} from 'react';
class EventComponent extends Component{
handleKeyPress = (e) => {
if(e.key === 'Enter') this.handleClick();
}
handleClick = () => {alert("끄적끄적 개발일기");}
handle
render(){
return (<div>
<input type="text" name="message" value={this.state.message}
onKeyPress={this.handleKeyPress}/>
<button onClick = {this.handleClick}}>확인</button>
</div>);
}
}
export default EventComponent;
import React, {useState} from 'react';
const EventComponent = () => {
const [form, setForm] = useState({
username : '',
message : ''
});
const {username, message} = form;
const onChange = (e) => {const nextForm = {
// 기존의 form 내용을 이자리에 복사
...form,
//원하는 값을 덮어씌우기
[e.target.name] : e.target.value
};
setForm(nextForm);
}
const onClick = () => {alert(username + " : " + message);
setForm({username : '', message : ''});
};
const onKeyPress = (e) => {if (e.key === 'Enter'){onClick;}}
return(
<div>
<input type="text" name="username" value={username} onChange{onChange}/>
<input type="text" name="message" value={message} onChange{onChange}
onKeyPress={onKeyPress}/>
<button onClick={onClick}>확인</button>
</div>
)
}