ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • input다루기
    React 2022. 3. 8. 21:14

    먼저, 사용자가 입력한 input값을 state로 저장해보자.

    저장공간이 필요하기에 빈 state를 먼저 만든 후,

    let [입력값, 입력값변경] = useState('');
    <input onChange={ (e) => { e.target.value } } />

    input태그에 onChange를 달아 내부의 파라미터에 e를 쓰고 e.target.value를 쓰면 사용자가 입력한 값이 나온다. 

    console.log(e.target.value)를 하면 input태그에 값이 변경될 때마다 콘솔창에 뜨게 된다. 이제 state에 저장하려면

    <input onChange={ (e) => { 입력값변경(e.target.value) } } />

    입력한 값을 입력값변경인 state 변경함수로 바로 바꾸어주면 된다. 

     

    만약, 블로그처럼 값을 입력해 저장을 누르면 글 리스트에 추가가 되는 UI를 만들고 싶으면 다음과 같다.

     <div className="publish">
            <input  onChange={ (e) => { 입력값변경(e.target.value) } }/>
            <button onClick={ () => { 
              var arrayCopy = [...글제목];
              arrayCopy.unshift(입력값); //unshift는 어레이의 맨앞에 새로운 것을 추가함
              글제목변경(arrayCopy);
            } }>저장</button>
    </div>

    이렇게 먼저, onChange를 이용해 입력값을 담아주고 button을 클릭하면 원래 있던 글제목이라는 array에 복사본을 만든 후, 복사본에 unshift문법을 써서 추가해주고, 글제목변경이란 state변경문법을 사용해 바꿔주면 된다.

    물론, 위엔 자동으로 UI를 만드는

    {
            글제목.map(function(a,i) {
              return (
                <div className="list">
                  <h3 onClick={ () => {클릭변경(i)} }> {a} </h3>
                  <p>2월 19일 발행</p>
                  <hr />
                </div>
              )
            })
    }

    map반복문의 코드가 있어서 글제목state만 변경해주면 자동으로 생성되게끔 해놓았다.

     

    정리해보면, 사용자가 입력한 글을 state로 저장하고, 버튼을 누르면 입력한 글 state를 원래 글 state에 저장하는 것이다. 

    'React' 카테고리의 다른 글

    React의 bootstrap과 img관리  (0) 2022.03.14
    옛날 React문법  (0) 2022.03.10
    props 자식이 부모의 state 사용할 때  (0) 2022.03.07
    map : html반복문  (0) 2022.03.07
    if문 대신 삼항연산자  (0) 2022.03.05

    댓글

Designed by Tistory.