작성
·
345
답변 2
0
요 부분 코드를 말씀드렸던 것입니다.
useSelector에서 해당 reducer를 통해 state를 인식하는 것인가 싶어서요
useState의 경우 결국 접근을 하려면 해당 state 혹은 setState 함수를 받아오지 않습니까?
근데 redux에서는 단순히 useSelector((state) => state.user) 식으로 되있는데
state 매개변수에는 무엇을 넣어주는 것이며 그 redux state는 어떻게 등록이 된 것인지 싶어서요.
initialState의 경우에는 객체를 저장해둔 것이지 createContext처럼 넣어준 것이 아닌데
어떠한 과정을 통해서 redux state가 등록되어지는지가 헷갈린 것 같습니다.
질문이 불분명하여 번거롭게해드려 죄송합니다.
0
아 제가 rootReducer와 헷갈렸네요.
reducers/user.js 와 reducers/post.js 에 각각 선언된 initialState가 어떻게 합쳐져서 rootState가 되는 것인건가요?
reducer의 경우 index.js에서 combineReducers를 통해 합쳐지니 이해할 수가 있는데 state 부분은 아리까리하네요 ㅠ.ㅠ
아 그렇군요... 답변 감사합니다!
마지막으로 한 가지만 여쭙겠습니다
useSelector((state) => ...);
의 코드에서 reducer의 이름을 rootReducer로 해주어야 하는 것인가요?
reducer를 어떻게 인식해서 state를 받아오는 것인가요?
질문이 이해가 안 가는 것이 rootReducer라는 코드를 안 썼는데 무엇을 왜 계속 rootReducer로 써야 하냐고 질문하시는 건가요? 저 자리는 리덕스state로 고정되어있습니다. 매개변수는 이름 마음대로 지어도 되고요.
useState에서도 [a, setA] 이름 마음대로 짓는것과 똑같습니다. [b, c]로 하든 [setC, c]로 하든 아무 상관 없는 것처럼요.
네 useSelector에 넣는 함수의 매개변수인 state는 저기 rootReducer의 state를 가져오게 되어있습니다.
https://github.com/reduxjs/react-redux/blob/master/src/hooks/useSelector.ts#L33-L65
코드를 보시면 redux도 context api 쓰고 있습니다.