카테고리 없음

[React] input

321 2021. 5. 16. 15:23

 

 

import React, { useState } from 'react';
import './App.css';

function App() {

  let [userInput, userInputChange] = useState('');


  return (
    <div className="App">
    
    <input onChange={ (e)=>{ userInputChange(e.target.value) } }/>
	
    {userInput}
    
    </div>
  );
}


export default App;
  • 위와 같은 코드를 작성할 때 userInput변수에 입력된 값을 받아 변경하고 그 값을 출력할 수 있다.
  • e.target.value의 쓰임을 잘 알아두자

 

 

 


 

 

// eslint-disable-next-line
import React, { useState } from 'react';
import './App.css';

function App() {

  let [a, aChange] = useState(['state1', 'state2', 'state3']);
  let [num, numChange] = useState([0 ,0 ,0]);

  let [userInput, userInputChange] = useState('');

  function change(clickNum){
    var tmp=[...num];
    tmp[clickNum]++;
    numChange(tmp);
  }

  return (
    <div className="App">


      {
        a.map(function(i, n){
          return <div className="list" key={n}>
            <h1> { i } <span onClick={ ()=>{change(n)} }>❤</span> { num[n] } </h1>
            </div>
        })

      }
    
    <hr/>
    
    <div>
      <input onChange={ (e)=>{ userInputChange(e.target.value) } }/>
      <button onClick={ ()=> {
        var tmp = [...a];
        tmp.unshift(userInput);
        aChange(tmp);
        num.unshift(0);
         } }> 저장하기 </button>
    </div>


    </div>
  );
}


export default App;

 

 

  • unshift기능을 쓰면 state배열의 0번째에 값이 삽입된다.
  • 값을 변경할때는 항상 카피본을 만들고 변경함수(카피본) 방식으로 해야 한다.