๐Ÿ–ฅFrontEnd/React

TIL) ๋ฆฌ์•กํŠธ, ๋นˆ์นธ์ด ์ž…๋ ฅ์ด ๋˜์ง€ ์•Š๋„๋ก ํ•˜๊ธฐ

hellohailie 2022. 7. 20. 00:39

 

 

๋ฆฌ์•กํŠธ๋กœ CRUD๋ฅผ ๊ตฌํ˜„ํ•˜๋˜ ์ค‘์—, ์œ ์ €๊ฐ€ ๋นˆ์นธ์„ ์ž…๋ ฅํ•˜๋ฉด ์ž…๋ ฅ์ด ๋˜์ง€ ์•Š๋„๋ก ํ•˜๋Š” ์ฝ”๋“œ ์ž…๋‹ˆ๋‹ค. 

 

๋ถ€๋ชจ ํŒŒ์ผ์ธ App.js์—์„œ๋Š” Create์— ๋Œ€ํ•œ handler๋ฅผ ์ž์‹ ํŒŒ์ผ์—๊ฒŒ props๋กœ ์ „๋‹ฌํ•ด์ค๋‹ˆ๋‹ค. 

const addGoalHandler = (enteredText) => {
    setCourseGoals((prevGoals) => {
      const updatedGoals = [...prevGoals];
      updatedGoals.unshift({ text: enteredText, id: Math.random().toString() });
      return updatedGoals;
    });
  };
 <CourseInput onAddGoal={addGoalHandler} />

 

๊ทธ๋ฆฌ๊ณ  ์ž์‹์—์„œ๋Š” ๊ทธ props๋ฅผ ๋ฐ›์•„์„œ submit์„ ํ•˜๊ธฐ ์ „์—, ํ˜„์žฌ ๊ฐ’์˜ ๊ธธ์ด๊ฐ€ 0์ด๋ฉด ๊ทธ๋ƒฅ return ์„ ํ•ด์ค๋‹ˆ๋‹ค. 

 

const CourseInput = (props) => {
  const [enteredValue, setEnteredValue] = useState("");

  const formSubmitHandler = (event) => {
    event.preventDefault();
    if (enteredValue.trim().length === 0) {
      return;
    }
    props.onAddGoal(enteredValue);
  };
  
  return () ... 
}

 

์—ฌ๊ธฐ์„œ trim์€ ์œ ์ €๊ฐ€ ๊ณผ๋„ํ•˜๊ฒŒ ๋นˆ์นธ์„ ์ž…๋ ฅํ•  ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋น„ํ•˜์—ฌ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค. 

 

๐Ÿ˜ƒ ์ž˜๋ชป๋œ ๊ฐœ๋… ์ „๋‹ฌ์ด ์žˆ๋‹ค๋ฉด ๋Œ“๊ธ€ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ €์˜ ์„ฑ์žฅ์— ํฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค๐Ÿค“