본문 바로가기
웹서비스 개발/React-App 개발

Create 구현 - form, onSubmit

by 후닝훈 2021. 5. 17.
반응형

Form

폼 기능을 추가하기 위해 CreateContent의 form을 추가시켰다. 

import React, { Component } from 'react';

class CreateContent extends Component {
  render() {
    console.log('Content render');
    return (
      <article>
        <h2>Create</h2>
        <form action="/create_process" method="post"
          onSubmit={function (e) {
            e.preventDefault();
            alert('Submit selected');
          }.bind(this)}
        >
          <p><input type="text" name="title" placeholder="title"></input></p>
          <p>
            <textarea name="desc" placeholder="description"></textarea>
          </p>
          <p>
            <input type="submit"></input>
          </p>
        </form>
      </article>
    );
  }
}

export default CreateContent;

action : 데이터를 전송할 장소

method = "post" : URL의 노출을 막음. post를 사용하는것이 좋음.

onSubmit = submit 버튼을 누른다면 그 해당 이벤트를 실행되도록 약속되어 있다.

 

onSubmit 기능추가

기능 추가를 위해 App.js에 onSubmit 코드를 추가시켰다.

//기존코드
else if (this.state.mode === 'create') {
      _article = <CreateContent></CreateContent>
    }
//변경코드
else if (this.state.mode === 'create') {
      _article = <CreateContent onSubmit={function(_title, _desc){
        console.log(_title, _desc);
      }.bind(this)}></CreateContent>
    }

 

또한 form을 추가할때 alert만 해놓은 onSubmit을 바꾸어준다.

// 기존코드
	<form action="/create_process" method="post"
          onSubmit={function (e) {
            e.preventDefault();
            alert('Submit selected');
          }.bind(this)}
          >
//변경코드
<form action="/create_process" method="post"
          onSubmit={function (e) {
            e.preventDefault();
            this.props.onSubmit(
              e.target.title.value,
              e.target.desc.value
            );
          }.bind(this)}
        >

- e 라는 event객체를 통해 접근

- target은 form 자체를 가리킨다.

- title.value는 입력된 타이틀명, desc.value는 본문이다.

 

결과

반응형

'웹서비스 개발 > React-App 개발' 카테고리의 다른 글

Create 구현 - 메소드  (0) 2021.05.19
Create 구현 - contents 변경  (0) 2021.05.18
Create 구현 - Mode 전환  (0) 2021.05.10
Props & State 의 차이  (0) 2021.05.04
컴포넌트 이벤트 생성  (0) 2021.04.30

댓글