react.memo 를 했는데 안되요 오타도 아닌데 왜그럴까요?
471
김사랑
작성한 질문수 10
0
import React from 'react'
const List = React.memo (({
id, title, completed, todoData, setTodoData, provided, snapshot
}) =>{
console.log('List is Rendering');
const handleClick =(id) => {
let newTodoData = todoData.filter((data)=> data.id !== id)
console.log ('newTodoData', newTodoData);
//this.setState({todoData: newTodoData});
setTodoData(newTodoData);
};
const handleCompleteChange = (id) => {
let newTodoData = todoData.map(data => {
if(data.id === id){
data.completed = !data.completed;
}
return data;
})
//this.setState({ todoData : newTodoData})
setTodoData(newTodoData);
};
return (
<div key={id} {...provided.draggableProps} ref={provided.innerRef} {...provided.dragHandleProps}
className={`${snapshot.isDragging ? "bg-gray-400" : "bg-gray-100"} flex items-center justify-between w-full px-4 py-1 my-2 text-gray-600 bg-gray-100 rounded`}>
<div className='item-center'>
<input
type="checkbox"
defaultChecked={completed}
onChange={() => handleCompleteChange(id)}/>
<span className={completed ? 'line-through' : undefined}>{title}</span>
</div>
<div className='item-center'>
<button className="px-4 py-2 float-right" onClick={()=> handleClick(id)}>x</button>
</div>
</div>
)
});
export default List
import React from 'react'
import { DragDropContext, Draggable, Droppable } from 'react-beautiful-dnd';
import List from './List';
const Lists = React.memo(({ todoData,setTodoData }) => {
console.log('Lists Component');
const handleEnd = (result) => {
console.log('result', result);
if(!result.destination) return;
const newTodoData = todoData;
//1. 변경시키는 아이템을 배열에서 지워줍니다.
//2. return 값으로 지워진 아이템을 잡아줍니다.
const [reorderedItem] = newTodoData.splice(result.source.index, 1);
//3. 원하는자리에 reorderedItem을 insert 해줍니다.
newTodoData.splice(result.destination.index, 0, reorderedItem);
setTodoData(newTodoData);
};
x
return (
<div>
<DragDropContext onDragEnd={handleEnd}>
<Droppable droppableId='todo'>
{(provided) => (
<div {...provided.droppableProps} ref={provided.innerRef}>
{todoData.map((data, index) => (
<Draggable
key={data.id}
draggableId={data.id.toString()}
index={index}
>
{(provided, snapshot) => (
<List
key={data.id}
id={data.id}
title={data.title}
completed={data.completed}
todoData={todoData}
setTodoData={setTodoData}
provided={provided}
snapshot={snapshot}
/>
)}
</Draggable>
))}
{provided.placeholder}
</div>
)}
</Droppable>
</DragDropContext>
</div>
);
});
export default Lists
답변 1
강의 소스 코드 압축 풀기 오류
0
71
1
런타임 에러 ㅠㅠ
0
86
1
강의대로 따라갔는데 에러보다 api키로 들어간 넷플릭스? 그런게 렌더링 되지 않습니다 ㅠ
0
102
1
안녕하세요 개발과 상관없는 질문입니다만
0
111
1
리액트 라우터 관련
0
103
1
react-beatiful-dnd에서 문제가 발생합니다.
0
103
1
react19에서는 react-beautiful-dnd가 설치되지 않습니다.
0
813
1
useEffect로 사용을 해도 되나요?
0
200
1
넷플릭스 오리지널 제외하고 슬라이드가 동작을 안합니다.
0
195
1
react 19의 useActionState가 더이상 isPending은 지원하지 않는 듯합니다
0
280
2
리액트 dockderfile 작성 시 COPY 질문
0
145
1
next.js에서부터는 react query 필요없는지
0
320
1
기능
0
197
1
오류가 안보여요
0
196
1
CSS
0
218
1
local storage
0
209
1
list컴포넌트 생성하기
0
224
1
검색어 입력 후 초기화하는 방법 궁금합니다!
0
331
1
Banner.css에 대해서
0
447
1
플러그인이 추천을 안해줍니다
0
321
1
마이너스버튼 테스트
0
279
2
리액트 서버 실행 오류
0
1156
2
오류메세지는 확인했는데 어떻게 고쳐야 할지 모르겠습니다 ㅠ
0
298
1
creactStore질문이요
1
284
2





