inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

풀스택 리액트 토이프로젝트 - REST, GraphQL (for FE개발자)

메시지 수정, 삭제 기능 구현

질문이 있습니다~

해결된 질문

221

bj2525

작성한 질문수 28

0

안녕하세요 선생님! 질문 드릴게 있습니다.
 
처음부터 setState에서 로직을 처리하는게 아닌 아래와 같이 onUpdate 함수에서 msgs를 splice를 하여 updateMsg에 할당해주고 setMsgs((msgs) => [updateMsg, ...msgs]) 수정된 updateMsg를 바꾸어주고 기존의 존재했던 state값을 스프레드 연산자로 코드를 작성하였습니다! 해당 리스트가 삭제되긴 하지만 msgItem이 계속 쌓이고 있는 부분이 있습니다.
어떤 부분이 문제인지 알고싶습니다!
 
 

react graphql rest-api

답변 2

0

정재남

제가 반환값을 잘못 말씀드렸네요.
말씀하신대로 targetIndex 부분만 변수에 담기는게 맞습니다.
그런데 원본인 msgs를 출력해보시면, splice 명령에 의해 변경사항이 반영된 결과가 출력될 겁니다.
splice 명령이 원본 배열을 변경하는 메소드라서 그런건데요,
(https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/splice)

뭘 어떻게 하고 싶으신건지 의도를 정확히 설명해주시면 더 나은 답변을 드릴 수 있을 것 같아요.

0

bj2525

해결했습니다 선생님! 늦은 시간까지 질문 받아주셔서 감사합니다

0

정재남

4번줄에서는 원본 메시지들(msgs) 중에서 targetIndex에 해당하는 메시지 하나의 값을 바꾼
"수정된 메시지들(msgs)이 `updateMsg` 변수에 담기게 됩니다.

즉 변수명을 `updateMsg`라고 지으셨지만 실제로는 메시지 전체 배열이 담깁니다.

그상태에서 [전체메시지 배열, 메시지펼침] 이라고 세팅을 하면
[ [msg1, msg2, msg3 ...],  msg1, msg2, msg3, ... ]
형태가 되겠죠.

deleteMsg도 마찬가지입니다.

4번줄에서는 원본 메시지들(msgs) 중에서 targetIndex에 해당하는 메시지 하나의 값을 바꾸어서
원본 메시지들(msgs)에 저장하고, 새로 변경된 값이 updateMsg 변수에 담기게 됩니다.

그 상태에서 [수정된 메시지, ...수정사항이 반영된 원본메시지들] 라고 하면
수정된 메시지가 제일 처음에 오게 되고, 그 뒤로는 '변경사항이 반영된' 원본메시지들이 죽 나열되겠죠.

deleteMsg도 마찬가지입니다.

0

bj2525

updateMsg가 전체 배열이 담긴다고 말씀하셨는데요! console을 찍어보니 targetIndex에 대한 부분만 담기고 있는데.. 제가 잘못 이해하고 있는걸까요..? 만약에 전체 배열이 아닌 그 해당하는 부분만 담고 싶으면 어떻게 해야하는걸까요,,

질문있습니다 !

0

133

2

sass 오류

0

174

1

does not match

0

164

2

프로젝트 배포

0

299

1

코드 똑같이 쳤는데 scss 적용이 안돼요 ㅠㅠ

0

746

1

scss 스타일 적용

0

478

2

yarn run client시 에러는 안 나는데 호스트가 열리질 않습니다 ㅠㅠ

0

430

1

무한 스크롤 관련 질문 드립니다.

1

512

2

props 를 넘겨줄 때 함수를 그대로 넘겨줄 때와 화살표 함수로 감싸서 넘겨줄 때의 차이가 궁금합니다 :)

0

454

1

getInitialProps 과 getServerSideProps에 대해서 질문드립니다!

0

1144

1

node-sass를 했을 때 에러가 발생합니다.

0

377

1

[소스 다운로드 안됩니다]

0

323

1

rendered HTML error 관련

2

2187

2

닉네임 부분이 잘못되어 있는 것 같습니다.

0

448

2

Typescript 질문드려요!

0

331

1

error 관련하여

1

289

1

질문이 있습니다!.

0

278

1

질문이 있습니다!

0

485

1

수정된 내용까지 확인했는데 에러가 납니다 ㅠ

1

303

2

React Hydration Error 가 나는 이유가 무엇일까요 ?;;

0

631

1

useRef를 선호하시는 이유가 궁금합니다!

1

794

1

react-query 4.0.0 버전에선 에러가 납니다

0

668

1

gql 백틱 안에 색깔 입혀지는 확장프로그램이 어떤건지 알 수 있을까요?

2

685

1

typeScript에 대한 질문을 어디다가 올려야할지 몰라서 여기다가 남깁니다!

0

303

1