나의 성장기

리액트 배우기 (컴포넌트 반복)

발전하고싶은개발자 2021. 3. 22. 23:47

import React, { useState } from "react";

 

const IterationSample = () => {

  const [namessetNames] = useState([

    { id: 1text: "눈사람" },

    { id: 2text: "얼음" },

    { id: 3text: "눈" },

    { id: 4text: "바람" },

  ]);

  const [inputTextsetInputText] = useState("");

  const [nextIdsetNextId] = useState(5);

 

  const onChange = (e=> setInputText(e.target.value);

  const onClick = () => {

    const nextNames = names.concat({

      id: nextId,

      text: inputText,

    });

    setNextId(nextId + 1);

    setNames(nextNames);

    setInputText("");

  };

 

  const onRemove = (id=> {

    const nextNames = names.filter((name=> name.id !== id);

    setNames(nextNames);

  };

 

  const namesList = names.map((name=> (

    <li key={name.id} onDoubleClick={() => onRemove(name.id)}>

      {name.text}

    </li>

  ));

  return (

    <>

      <input value={inputText} onChange={onChange} />

      <button onClick={onClick}>추가</button>

      <ul>{namesList}</ul>

    </>

  );

};

 

export default IterationSample;