TIL
React _ ToDoList
minnjeong
2023. 4. 19. 23:40
React _ 1주차
ToDoList
Github : https://github.com/minnjeong/todo
코드를 작성 후 컴포넌트 분리에 대해 어려움을 겪었고, 기술매니저님께 이에 대한 질문을 했다.
질의응답 시간 후 리팩토링 한 코드를 작성해보겠다.
수정 전
<div className="lists">
<div className="list">
<span>
Working.. 🔥
</span>
<div className="listWrapper">
<div className="listContainer">
{todo
.filter((todo) => todo.isDone === false)
.map((todo) => {
return (
<TodoItem todo={todo} clickRemoveHandler={clickRemoveHandler} completeHandler={completeHandler}/>
);
})}
</div>
</div>
</div>
<div className="list">
<span>
Done..! 🎉
</span>
<div className="listWrapper">
<div className="listContainer">
{todo
.filter((todo) => todo.isDone === true)
.map((todo) => {
return (
<TodoItem todo={todo} clickRemoveHandler={clickRemoveHandler} completeHandler={completeHandler}/>
);
})}
</div>
</div>
</div>
</div>
크게 보면 lists 아래에 완료 전 list, 완료 후 list 로 같은 내용이 반복되고 있다.
수정 후
app.js에 이렇게 쓸 수 있음
<TodoList title={'Working.. 🔥'} todo={todo} clickRemoveHandler={clickRemoveHandler} completeHandler={completeHandler}/>
<TodoList title={'Done..! 🎉'} todo={todo} clickRemoveHandler={clickRemoveHandler} completeHandler={completeHandler}/>
todolist.jsx 컴포넌트에 분리
export default function TodoList(props) {
return (
<div className="list">
<span>
{props.title}
</span>
<div className="listWrapper">
<div className="listContainer">
{props.todo
.filter((todo) => todo.isDone === true)
.map((todo) => {
return (
<TodoItem todo={props.todo} clickRemoveHandler={props.clickRemoveHandler} completeHandler={props.completeHandler}/>
);
})}
</div>
</div>
</div>
)
}
troubleshooting
todolist 컴포넌트에서 todoitem이 정의되지 않았다고 한다.
다음에 이어서 문제 해결 방안을 써보겠다