inflearn logo
강의

Course

Instructor

Delivery App Clone Coding [with React Native]

Socket 연결시 질문 드립니다.!

Resolved

150

dudwnsbook6085

1 asked

0

안녕하세요!!

 

Socket 연결부분에서

 

useEffect(()=>{

},[socket,dispatch])

 

아래 socket과 dispatch 넣는이유와 안넣는 점의 차이를 설명 부탁드리겠습니다. 해당 부분이 이해가 잘 안되어서여 ㅠㅠ

react-native socket

Answer 2

0

zerocho

사실 dispatch는 안 넣어도 됩니다. 불변값이라서 넣으나 안 넣으나 똑같습니다. 다만 eslint 같은 데서 안 넣으면 경고를 띄웁니다. socket 값은 변할 때마다 useEffect를 재실행합니다

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. 송영준님.

useEffect에서 의존성 배열([])에 무엇을 넣는지에 따라 컴포넌트가 렌더링될 때 어떤 변화를 감지할지를 결정합니다. socketdispatch를 넣는 이유와 의미에 대해 설명드리겠습니다.

  1. socket:

    • socket 객체를 의존성 배열에 넣으면, socket 객체가 변경될 때마다 useEffect 내부의 코드가 실행됩니다. 예를 들어, 새로운 소켓 연결을 설정하거나 소켓과 관련된 로직을 실행하는 경우, socket의 변화가 있을 때 특정 작업을 다시 실행해야 할 필요가 있을 수 있습니다. 이렇게 하면 소켓의 상태 변화에 따라 효과를 재실행할 수 있습니다.
  2. dispatch:

    • dispatch는 일반적으로 Redux와 관련되어 상태 관리에서 액션을 디스패치하는 함수입니다. 의존성 배열에 dispatch를 넣는다는 것은 dispatch 함수 자체가 변경되었을 때 useEffect가 재실행될 수 있도록 하는 의미입니다. 일반적으로 dispatch는 함수라 변경되지 않지만, 코드의 일관성과 최적화를 위해 넣는 경우도 있습니다.

안 넣는 차이:
- 의존성 배열에 socketdispatch를 포함하지 않으면, 해당 값들이 변경되더라도 useEffect는 실행되지 않습니다. 이 경우는 처음 컴포넌트가 마운트되었을 때만 useEffect가 실행되며, 이후에는 다시 실행되지 않기 때문에 소켓 연결의 변화와 그에 따른 로직 처리에 다른 반응을 할 필요가 없을 때 사용할 수 있습니다.

관련된 질문과 답변을 참고하시기 바랍니다:

위 설명이 도움이 되셨길 바랍니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

앱실행시 네이버맵 [401] 에러

0

914

2

스타일링 라이브러리

0

143

2

expo, cli 선택 중에 고민이 있습니다.

0

166

2

JDK 버전이 달라도 괜찮나요?

0

222

2

dimenstion usewindowdeminstion

0

118

3

[맥 전용]환경 설정하기 1편 & [맥 전용]환경 설정하기 2편의 영상이 안나옵니다.

0

208

1

jdk11 버전과 gradle 버전의 호환성 관련 질문드립니다.

0

398

2

강의 외 질문입니다!

0

155

2

react native랑 맞는 ui 라이브러리 어떤게 좋을까요?

0

1470

2

react native와 spring boot 연결

0

352

1

java가 아닌 .kt에서 code push 에러가 발생합니다.

0

207

2

flipper 239 에러가 발생합니다.

0

161

2

package.json에 /lib/panino.js 문제입니다.

0

461

2

window - mac 협업 과정 질문합니다

0

213

1

ios 빌드 중 RCTBridgeDelegate.h import 오류

0

287

2

ios 앱 빌드 중 hermesEnabled 관련 오류발생

0

237

2

wifi 환경에서 axios 통신이 로컬서버에서 안됩니다.

0

425

2

iOS render error 질문드립니다.

0

408

2

iOS 가상머신 오류

0

161

2

npc react init 명령어 실행시 발생되는 오류

0

216

1

nom start 시 오류

0

112

1

NextJS 기반으로 만들어서 웹뷰 React Native로 배포 가능한가요?

0

984

2

안드로이드 rn75 버전에 맞게 설정 중에 android13 다운로드에 대해서 막혔습니다!

0

179

2

foreground 상태일 떄 push alert notification 질문

0

547

2