2022. 1. 16. 21:21ใWEB Dev/ToyProject
๐ท CloneTodo โ - Todomate Clone Project | Team CloneMate
CloneTodo : ๋ง์ ์ฌ๋๋ค์ด ์ฌ๋ํ๋ ํฌ๋๋ฉ์ดํธ๋ฅผ ํด๋ก ํ์ฌ ์น ์๋น์ค๋ฅผ ๋ฐฐํฌํด๋ณด๋ ํ๋ก์ ํธ
editGoal ํจ์๋ฅผ ๋ง๋ค์ด ๋ณด์
editGoal์ ์ธ์๋ก editGoalItem.item์ ๋ฐ์์จ๋ค. ์ฆ, ์์ ์ ์ํด ์ ํ๋ title์ id์ ์์ ๋ title์ ์ธ์๋ก ๋๊ฒจ๋ฐ๋๋ค.
๊ทธ๋์ editGoal ํจ์๋ฅผ ๋ง๋ค๊ณ e๋ฅผ ์ฐ์ด๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ์ด ๋์จ๋ค.
//๋ชฉํ ์์ ํจ์
function editGoal(e){
console.log('e : ', e)
}
ํ์ฌ goal state์ id๊ฐ๊ณผ ๋์ด์จ e์ id ๊ฐ์ด ๊ฐ์ ๊ฒ์ ์ธ๋ฑ์ค ๋ฒํธ๋ฅผ ์ฐพ์์ผ ํ๊ธฐ ๋๋ฌธ์
findIndex ๋ฉ์๋๋ฅผ ์ด์ฉํด ์ธ๋ฑ์ค๋ฅผ ์ฐพ์๋ณด์.
thisItems ๋ผ๋ ๋ณ์๋ฅผ ์ ์ธํด์ goal state๋ฅผ ์นดํผํด์ฃผ๊ณ idx ๋ผ๋ ๋ณ์๋ฅผ ํ๋ ์ ์ธํด์ค๋ค.
idx ์๋ id ๊ฐ์ ๋น๊ตํด์ ์ธ๋ฑ์ค๋ฅผ ์ฐพ์ ์ ์๋๋ก ์กฐ๊ฑด์ ์์ฑํด์ค๋ค.
findIndex ๋ฉ์๋ ์ฌ์ฉ
//๋ชฉํ ์์ ํจ์
function editGoal(e){
console.log('e : ', e)
const thisItems = goal.items; // goal State ์๋ณธ ์นดํผ
let idx = thisItems.findIndex((item)=>{ return item.id === e.id })//findIndex ์ฌ์ฉ
console.log('idx : ' , idx );
}
์ด๋ ๊ฒ ํ๋ฉด ์ฝ์์ idx ์ ํ ๋น๋ ์ธ๋ฑ์ค ๊ฐ์ด ๋์ค๊ฒ ๋๋ค.
์ด idx ๊ฐ์ ์ด์ฉํด์ goalChange ํจ์๋ฅผ ํตํด state ๊ฐ์ ๋ณ๊ฒฝํด์ฃผ๋ฉด ๋๋ค.
๊ทธ๋์ ์๋์ ๊ฐ์ด ์ ๋ ฅํ๋๋ฐ...
goalChange(thisItems[idx].title = e.title); //goalChange๋ฅผ ์ด์ฉํด state ๋ณ๊ฒฝ
๊ฐ์๊ธฐ ์ค๋ฅ๊ฐ ์๋ Goal์์ ๋ ๋๋ง ์ค๋ฅ๊ฐ ๋ง ์๊ธฐ๊ธฐ ์์ํ๋ค.
๊ฒ์์ ํด๋ด๋ ์คํ ๋๋ฌธ์ด๋ผ๊ณ ํ๋๋ฐ...
์์ goalChange๋ฅผ ์คํํ๊ณ ๋ถํฐ ์ค๋ฅ๊ฐ ๋ฌ์ผ๋ ๋น์ฐํ goalChange์์ ๋ญ๊ฐ ๋ฌธ์ ๊ฐ ์๋ ๊ฒ ๊ฐ๊ณ ...
์นดํผ๋ฅผ ํด์ ๋ด์ฉ์ ๋ฐ๊พผ ๊ฒ์ ํ ๋นํด์ผ ํ๋๋ฐ ์ ๋ ๊ฒ ํ๋ฉด ์ฌ๋ ๋๋ง ๋ ๋ ์ค๋ฅ๊ฐ ๋๋ค๋
๋ฐ๋ก ๊ทธ state ์ง์ ๋ฐ๊พธ๊ธฐ๋ฅผ ๋ด๊ฐ ์๋ํ ๊ฒ์ผ๊น?
goalChange๋ก State ๋ณ๊ฒฝํ๊ธฐ
๋ค์ ์ ์ ์ ์ฐจ๋ฆฌ๊ณ ใ ใ ใ
thisItems ์ผ๋ก ๋ณต์ฌํ state์ idx ๋ฒ์งธ์ title์ e๋ก ๋ฐ์์จ title๋ก ๋ณ๊ฒฝํ๊ณ , thisItems๋ฅผ goalChange๋ก ๋ณ๊ฒฝํ๋ค..
//๋ชฉํ ์์ ํจ์
function editGoal(e){
const thisItems = goal.items; // goal State ์๋ณธ ์นดํผ
let idx = thisItems.findIndex((item)=>{ return item.id === e.id })//findIndex ์ฌ์ฉ
thisItems[idx].title = e.title;
goalChange( {items : thisItems } ); //goalChange๋ฅผ ์ด์ฉํด state ๋ณ๊ฒฝ
document.querySelector(`#ID-${idx}`).value = '';
console.log('edit items :', goal.items)
}
์ ์์ ์ผ๋ก ์์ ์ด ๋๋ค...!!
๊ทธ๋ฐ๋ฐ ์์ ๋์๋ง์ ๋๋ฒ์งธ๋ฅผ ํด๋ฆญํ์ ๋๋ ์์ ์ด ๋์ง ์๊ธฐ ๋๋ฌธ์ ์์ ์ด ๋๋ฉด ์์ฃผ ์๋ก๊ณ ์นจ์ ํ ๋ฒ ํด์ฃผ๋์ง
๋์ค์๋ GoalForm๊ณผ GoalEditForm์ ๋ชจ๋ ๋ณ๋์ ํ์ด์ง๋ก ๋ง๋ค์ด ์ค ์์ ์ด๋ผ
๊ทธ๋๋ ์๋ฌ๊ฐ ๋๋ฉด ์์ ํด๋ด์ผ๊ฒ ๋ค.
๋ด์ผ์ GoalForm๊ณผ GoalEditForm ์ปดํฌ๋ํธ๋ค์ ๋ณ๋์ ํ์ด์ง๋ก ๋ํ๋๊ฒ ํด๋ด์ผ๊ฒ ๋ค.
์ ์ ๋ญ๊ฐ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ค๊ณ ๋๋ผ๋ฉด์๋ ์๋๊ฐ ๋๋ฌด ๋๋ฆฌ๋ค๋ ์๊ฐ์ ์๊ดด๊ฐ์ด ๋ง ๋ค๊ณ ์๋ค.
๋ค๋ฅธ ๋ถ๋ค์ ์๋์ ๋ง์ถฐ ๊ฐ์ผํ๋๋ฐ ๋ฆฌ์กํธ๊ฐ ์ ๋๋ก ์ดํด๋์ง ์์์ ๊ทธ๋ฐ๊ฑธ๊น ๋๋ฌผ๋๊ฒ ์ด๋ ต๋คใ ใ
๋๋ฌด ๋ฐ๋ณด๊ฐ์ด ์ฝ๋๋ฅผ ์ง๋ ๊ฒ ๊ฐ์ง๋ง ๊ธฐ๋ฅ์ด ๋์๊ฐ๋ ์ผ์ถ ํ๋๊ฑฐ ๊ฐ๊ธฐ๋ ํ๊ณ ...
์๊พธ ๋ต๋ตํ ๋ฟ์ด๋ค ใ ใ ใ ใ ใ
'WEB Dev > ToyProject' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ToyProject-Todomate] ํฌ๋๋ฉ์ดํธ ํด๋ก ํ๋ก์ ํธ 32 (0) | 2022.01.26 |
---|---|
[ToyProject-Todomate] ํฌ๋๋ฉ์ดํธ ํด๋ก ํ๋ก์ ํธ 31 (0) | 2022.01.24 |
[ToyProject-Todomate] ํฌ๋๋ฉ์ดํธ ํด๋ก ํ๋ก์ ํธ 29 (0) | 2022.01.16 |
[ToyProject-Todomate] ํฌ๋๋ฉ์ดํธ ํด๋ก ํ๋ก์ ํธ 28 (0) | 2022.01.16 |
[ToyProject-Todomate] ํฌ๋๋ฉ์ดํธ ํด๋ก ํ๋ก์ ํธ 27 (0) | 2022.01.15 |