ย ๊ธฐ์กด ์ฝ๋๋ Todo List ์
๋ ฅํผ์ ๋น ๋ฌธ์์ด์ด ์
๋ ฅ๋๋ฉด, ์๋ฌด๋ฐ ๋์์ด ์ผ์ด๋์ง ์๋๋ก return;์ ํด์ฃผ์๋๋ฐ, ํผ๋๋ฐฑ ๋ ์ฌ์ฉ์๊ฐ ๋ฌธ์ ์ ์ ์ ์ ์๊ฒ ํด์ฃผ๋ ๊ฒ์ด ์ข๋ค ํด์ ๋น ๋ฌธ์์ด ์
๋ ฅ์ ํ ๊ฒฝ์ฐ alert ๋ฉ์ธ์ง๊ฐ ๋จ๋๋ก ์์ ํด์ฃผ์๋ค.
// ๋น ๋ฌธ์์ด ์
๋ ฅ ์ alert
if (!(title.length && content.length)) {
return alert("Todo List์ ์ ๋ชฉ๊ณผ ๋ด์ฉ์ ์ ์ด์ฃผ์ธ์โ");
ย
ย List Item์ ์ํ๋ฅผ ๋ณํํ๋ ํจ์์ธ changeListState์์ ๊ธฐ์กด์๋ todoList ๊ฐ์ฒด์ ๋ด๋ถ ๋ฐ์ดํฐ๋ฅผ ์ค์ ๋ก ๋ณ๊ฒฝํ๋ ๋ฐฉ์์ผ๋ก ์ฝ๋๋ฅผ ์งฐ์๋ค๋ ๊ฒ์ ํผ๋๋ฐฑ ๊ณผ์ ์ค์ ์๊ฒ ๋์๊ณ , ๋ฐ๋ผ์ ๋ถ๋ณ์ฑ ์ ์ง๋ฅผ ์ํด ์๋ก์ด ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ๋ฐฉ์์ผ๋ก ์ฝ๋๋ฅผ ์์ ํ์๋ค.
// todo list ์ํ ๋ณํ
const changeListState = (id) => {
const todoListState = todoList.map((item) => (item.id === id ? { ...item, isCompleted: !item.isCompleted } : item));
ย
<label>์ htmlFor ์์ฑ ํ์ฉ<input>์์ ์ด๋ฒคํธํธ๋ค๋ฌ ํจ์๋ฅผ ๋ฐ๋ก ์์ฑํ๋ ๊ฒ์ด ์๋, ๋ฏธ๋ฆฌ ํจ์๋ก ์ ์ธ ํ ์ฐ๊ฒฐํ๋ ๋ฐฉ์์ผ๋ก ์์