# React-19.2. create 구현 - mode 변경 기능
1. button 영역 추가
: src\App.js - rander의 toc 컴포넌트 다음에 버튼영역 추가
<ul>
<li><a href="/create">create</a></li>
<li><a href="/update">update</a></li>
<li><input type="button" value="delete" ></input></li>
</ul>
2. 추가한 button 영역을 컴포넌트로 추출 : Control
: app.js - import 영역 추가
import Control from './components/Control';
: app.js - rander 영역 추출코드로 변경
<Control></Control>
: Control.js 추가
import React, { Component } from 'react';
export class Control extends Component {
render() {
console.log("Control render");
return (
<ul>
<li><a href="/create">create</a></li>
<li><a href="/update">update</a></li>
<li><input type="button" value="delete"></input></li>
</ul>
);
}
}
export default Control; // app.js에서 중괄호 없이 import 가능
3. app.js에서 Control 영역에 그려진 li 항목 선택시 이벤트 발생
- Control 클릭시 app.js의 mode 정보 수정
3.1 Control 컨트롤러에 이벤트를 추가하여 app.js에 정의될 사용자 이벤트함수 호출
: Control.js - return에 정의된 항목에 이벤트 추가
<ul>
<li><a href="/create" onClick={function(e){
e.preventDefault();
this.props.onChangeMode('create');
}.bind(this)}>create</a></li>
<li><a href="/update" onClick={function(e){
e.preventDefault();
this.props.onChangeMode('update');
}.bind(this)}>update</a></li>
<li><input onClick={function(e){
e.preventDefault();
this.props.onChangeMode('delete');
}.bind(this)}type="button" value="delete"></input></li>
</ul>
3.2 Control 컨트롤러 클릭시 호출할 사용자 이벤트 함수 정의
: app.js - return에서 호출하는 Control에 사용자 이벤트 함수 추가
<Control onChangeMode={function(_mode){
this.setState({
mode : _mode
});
}.bind(this)}></Control>
* 다음 기능
- mode(create, update, delete) 값에 따라 Content 표시영역 변경되도록 수정
'front > react' 카테고리의 다른 글
생활코딩 react (19.4. create 구현 - form) (0) | 2021.09.28 |
---|---|
생활코딩 react (19.3. create 구현 - mode 전환 기능) (0) | 2021.09.27 |
생활코딩 react (19.1. create 구현 - 소개) (0) | 2021.09.03 |
생활코딩 react (18. 베이스 캠프) (0) | 2021.09.02 |
생활코딩 react (17.3. 컴포넌트 이벤트 만들기) (0) | 2021.09.01 |