inflearn logo
강의

講義

知識共有

[リニューアル] ReactでNodeBird SNS作成

ダミーデータとポストフォームの作成

useSelector 질문

387

frenchkebab

投稿した質問数 23

0

안녕하세요 제로초님
 
const { isLoggedIn } = useSelector((state) => state.user);
 
요 코드에서 useSelector의 state에 들어갈 state 인자에는
index.js, post.js, user.js 의 어느것인지 어떻게 알고 누가 넣어주는건가요?

react redux nodejs express Next.js

回答 2

0

frenchkebab

const rootReducer = combineReducers({
index: (state = {}, action) => {
switch (action.type) {
case HYDRATE:
console.log('HYDRATE', action);
return { ...state, ...action.payload };

default:
return state;
}
},
user,
post,
});

요 부분 코드를 말씀드렸던 것입니다.

useSelector에서 해당 reducer를 통해 state를 인식하는 것인가 싶어서요

useState의 경우 결국 접근을 하려면 해당 state 혹은 setState 함수를 받아오지 않습니까?

근데 redux에서는 단순히 useSelector((state) => state.user) 식으로 되있는데

state 매개변수에는 무엇을 넣어주는 것이며 그 redux state는 어떻게 등록이 된 것인지 싶어서요.

 

initialState의 경우에는 객체를 저장해둔 것이지 createContext처럼 넣어준 것이 아닌데

어떠한 과정을 통해서 redux state가 등록되어지는지가 헷갈린 것 같습니다.

 

질문이 불분명하여 번거롭게해드려 죄송합니다.

0

zerocho

네 useSelector에 넣는 함수의 매개변수인 state는 저기 rootReducer의 state를 가져오게 되어있습니다.

https://github.com/reduxjs/react-redux/blob/master/src/hooks/useSelector.ts#L33-L65

코드를 보시면 redux도 context api 쓰고 있습니다.

0

zerocho

reducer랑 state는 별개의 개념이 아니라 한몸입니다. rootReducer에서 combineReducer를 했으니 state도 합쳐지는 겁니다.

0

zerocho

매개변수 state는 항상 rootState입니다. (rootState는 user와 post를 속성으로 가진 객체죠)

0

frenchkebab

그러면 항상 이름을 rootState으로 해주어야 하는 것인가요?

0

zerocho

아뇨 코드에서도 보다시피 rootState는 없는데요?

0

frenchkebab

아 제가 rootReducer와 헷갈렸네요.

reducers/user.js 와 reducers/post.js 에 각각 선언된 initialState가 어떻게 합쳐져서 rootState가 되는 것인건가요?

 

reducer의 경우 index.js에서 combineReducers를 통해 합쳐지니 이해할 수가 있는데 state 부분은 아리까리하네요 ㅠ.ㅠ

0

zerocho

reducer를 합치는게 state를 합치는 것과 똑같습니다.

0

frenchkebab

아 그렇군요... 답변 감사합니다!

마지막으로 한 가지만 여쭙겠습니다

useSelector((state) => ...);

의 코드에서 reducer의 이름을 rootReducer로 해주어야 하는 것인가요?

reducer를 어떻게 인식해서 state를 받아오는 것인가요?

0

zerocho

질문이 이해가 안 가는 것이 rootReducer라는 코드를 안 썼는데 무엇을 왜 계속 rootReducer로 써야 하냐고 질문하시는 건가요? 저 자리는 리덕스state로 고정되어있습니다. 매개변수는 이름 마음대로 지어도 되고요.

useState에서도 [a, setA] 이름 마음대로 짓는것과 똑같습니다. [b, c]로 하든 [setC, c]로 하든 아무 상관 없는 것처럼요.

넥스트 버젼 질문

0

78

2

로그인시 401 Unauthorized 오류가 뜹니다

0

89

1

무한 스크롤 중 스크롤 튐 현상

0

175

1

특정 페이지 접근을 막고 싶을 때

0

103

2

createGlobalStyle의 위치와 영향범위

0

96

2

인라인 스타일 리렌더링 관련

0

91

2

vsc 에서 npm init 설치시 오류

0

146

2

nextjs 15버전 사용 가능할까요?

0

158

1

화면 새로고침 문의

0

121

1

RTK에서 draft, state 차이가 있나요?

0

153

2

Next 14 사용해도 될까요?

0

452

1

next, node 버전 / 폴더 구조 질문 드립니다.

0

349

1

url 오류 질문있습니다

0

211

1

ssh xxxxx로 우분투에 들어가려니까 port 22: Connection timed out

0

373

1

sudo certbot --nginx 에러

0

1275

2

Minified React error 콘솔에러 (hydrate)

0

470

1

카카오 공유했을 때 이전에 작성했던 글이 나오는 버그

0

247

1

프론트서버 배포 후 EADDRINUSE에러 발생

0

327

1

npm run build 에러

0

518

1

front 서버 npm run build 중에 발생한 에러들

0

382

1

서버 실행하고 브라우저로 들어갔을때 404에러

0

338

2

css 서버사이드 랜더링이 적용되지 않아서 문의 드립니다.

0

288

1

팔로워 3명씩 불러오고 데이터 합쳐주는걸로 바꾸고 서버요청을 무한으로하고있습니다.

0

239

2

해시태그 검색에서 throttle에 관해 질문있습니다.

0

201

1