inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

따라하며 배우는 리액트 A-Z[19버전 반영]

Drag and Drop 잘 따라했는데... 작동이 안됩니다.

300

뽕리뽕뽕

작성한 질문수 12

0

index.js에서 React.StrictMode를 제거를 하여도 작동이 안됩니다...ㅠㅠㅠ

그래서 그냥 넘어가면서 공부하자 해서 handleEnd도 동일하게 작성한거 같은데 이제는 화면에 보이지도 않습니다... 혹시 문제가 무엇일까요...ㅠㅠㅠ

 

 

 

import React from 'react';

import {DragDropContext,Draggable,Droppable} from "react-beautiful-dnd";

export default function list({todoData,setTodoData})  {

  

  const handComplete =(id)=>{

    let newTododata = todoData.map(data => {

      if(data.id ===id){

        data.completed = !data.completed;

      }

      return data;

    })

    setTodoData(newTododata);

  }

 

 

 

 

  const handClick=(id)=>{

    let newTododata = todoData.filter((data) => data.id !== id)

    setTodoData(newTododata);

  }

  

  const handleEnd=(result)=>{

    if(!result.destination) return;

 

    //리액트 불변성을 지켜주기 위해 새로운 todoData 생성

    const newTododata =  todoData

 

    //1. 변경시키는 아이템을 배열에서 지워줍니다.

    //2. return 갑으로 지워진 아이템을 잡아줍니다.

    const [reorderedItem] = newTododata.splice(result.source.index,1);

 

    //원하는 자리에 reorderedItem을 insert 해줍니다.

    newTododata.splice(result.destination.index,0,reorderedItem);

    setTodoData(newTododata);

    

  }

 

  return (

    <div>

      <DragDropContext onDragEnd={handleEnd()}>

        <Droppable droppableId="todo">

          {(provided) => (

            <div {...provided.droppableProbs} ref={provided.innerRef}>

      {todoData.map((data,index) =>(

        <Draggable

        key={data.id}

          draggableId={data.id.toString()}

          index={index}

          >

          {(provided, snapshot)=>(

      <div

      key={data.id}

      {...provided.droppableProbs}

      ref={provided.innerRef}

      {...provided.dragHandleProps}

      className={`${

        snapshot.isDragging ? "bg-gray-400" : "bg-gray-100"} flex items-center justify-between w-full px-4 my-2 text-gray-600  border rounded `}

      >

          <div className='items-center'>

          <input type="checkbox" defaultChecked={false}

          onChange={()=> handComplete(data.id)}/>{" "}

          <span

          className={data.completed ? "line-through" : undefined}>{data.title} </span>

          </div>

          <div>

          <button className='px-4 py-2 float-right' onClick={()=>handClick(data.id)}>x</button>

          </div>

        </div>

        )}

        </Draggable>

        ))}

        {provided.placeholder}

        </div>

          )}

        </Droppable>

        </DragDropContext>

 

    </div>

  

  );        

}

 

redux react tdd typescript Next.js

답변 1

0

John Ahn

안녕하세요!

죄송하지만 이렇게 봐서는 에러를 찾기가 쉽지 않아서요 ㅠㅠ

먼저 강의에 제공된 소스코드와 비교를 해주셔서 찾아주시고

그래도 안될 경우에는 새로운 글로 깃허브 저장소와 함께 올려주시면

제가 직접 해보겠습니다.

감사합니다.

강의 소스 코드 압축 풀기 오류

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