반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- input
- jsx
- App.vue
- JavaScript
- Vue.js
- Wecode
- express
- nodejs
- Vue transition
- v-html
- webpack
- scss
- event
- HOC
- sass
- react
- ES6
- State
- TypeScript
- 댓글달기
- Vue
- 리액트
- mapGetters
- CSS
- 쉬운설명
- vuex
- 자료구조
- storybook
- 자바스크립트
- MySQL
Archives
- Today
- Total
익명의 개발노트
[Select Tag, Multi input] 이벤트 핸들링 본문
반응형
Select Tag 사용시 이벤트 핸들링
<select>
<option value="grapefruit">Grapefruit</option>
<option value="lime">Lime</option>
<option selected value="coconut">Coconut</option>
<option value="mango">Mango</option>
</select>
1. state 초기값 설정
2. select 태그에 대한 이벤트 핸들러 설정
3. 이벤트 핸들러에서 setState값 변경
class FlavorForm extends React.Component {
constructor(props) {
super(props);
this.state = {value: 'coconut'}; //1.초기값 설정
this.handleChange = this.handleChange.bind(this);
this.handleSubmit = this.handleSubmit.bind(this);
}
handleChange(event) { //3.setState값 변경
this.setState({value: event.target.value});
}
handleSubmit(event) {
alert('Your favorite flavor is: ' + this.state.value);
event.preventDefault();
}
render() {
return (
<form onSubmit={this.handleSubmit}>
<label>
Pick your favorite flavor:
<select value={this.state.value} onChange={this.handleChange}> //2.부모테그 이벤트 핸들러 설정
<option value="grapefruit">Grapefruit</option>
<option value="lime">Lime</option>
<option value="coconut">Coconut</option>
<option value="mango">Mango</option>
</select>
</label>
<input type="submit" value="Submit" />
</form>
);
}
}
Input 여러개있을때 이벤트 핸들링 설정
1. input 태그에 각각의 이름설정, 이벤트 부여
2. 이벤트 핸들링, 인풋 태그 갯수에 상관없이 이벤트 핸들러는 한개만 생성 후 내부에서 이름값으로 컨트롤
class Reservation extends React.Component {
constructor(props) {
super(props);
this.state = {
isGoing: true,
numberOfGuests: 2
};
this.handleInputChange = this.handleInputChange.bind(this);
}
handleInputChange(event) {
const target = event.target;
const value = target.type === 'checkbox' ? target.checked : target.value;
const name = target.name; //이름값으로 컨트롤
this.setState({
[name]: value
});
}
render() {
return (
<form>
<label>
Is going:
<input
name="isGoing"
type="checkbox"
checked={this.state.isGoing}
onChange={this.handleInputChange} />
</label>
<br />
<label>
Number of guests:
<input
name="numberOfGuests"
type="number"
value={this.state.numberOfGuests}
onChange={this.handleInputChange} />
</label>
</form>
);
}
}
반응형
'프로그래밍 > ReactJS' 카테고리의 다른 글
웹팩 자동빌드하기 (0) | 2019.05.09 |
---|---|
웹팩(webPack) + 바벨 설정하기. (2) | 2019.05.08 |
리액트 Hook (1) | 2019.05.08 |
Redux (0) | 2019.04.25 |
리액트 CSS관련 라이브러리 (0) | 2019.04.24 |
Comments