강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

스터디하쟈님의 프로필 이미지
스터디하쟈

작성한 질문수

리액트로 나만의 블로그 만들기(MERN Stack)

(21) Header(3) - Reducer Setting

리덕스!!

작성

·

248

0

강사님이 만든거 그대로 제가 따라해서 만들었어요

근데 엑시오스로 겟으로 줬을때 네트워크 보면 데이터가 나오는걸 확인 할수있는데 

useselector로 이용해서 스테이트에 쓰려 하니까

잘안됩니다. 콘솔로 찍어보면 언파인드로 나옵니다.

const base = useSelector((state) => state.config.site_copyright);

이렇게 하면 필드 한줄이 나와야하는데.. 뭐가 문제일까요?

아무리 해봐도 출력 안되고

state.config를 로그에 찍어서 보니까 좀 이상하게 나옵니다.

{base:""}

{base:undefined}

{base:{....}}

이렇게 나옵니다. 

그리고 제가 만드려는 의도는 그냥 홈페이지에 기본설정을 디비에 넣었는데 그걸 이용해서 그대로 출력 하고싶은데 어떤게 문제인진 모르겠네요 ㅠㅠ

퀴즈

대규모 React 애플리케이션에서 Redux를 사용하는 주된 이유는 무엇일까요?

컴포넌트의 스타일링을 위해서

애플리케이션의 전역 상태 관리를 중앙화하기 위해서

사용자 인증 속도를 높이기 위해서

데이터베이스 연결을 직접 처리하기 위해서

답변 2

0

싸플님의 프로필 이미지
싸플
지식공유자

저 부분은 제가 강의에서도 한번 언급하긴 했는데... 저렇게 한번에 쑥~~~ 깊숙이 들어가면 undefined로 나옵니다.  이유는 값이 저장이 안되었기 때문입니다. 그래서 undefined가 나오는 것입니다. 

이건 console.log를 통해 테스트해보면 금방알 수 있습니다. 

이럴 경우는 강의처럼 state를 나누던가...

아니면, 제가 주로 쓰는 편법인데 전역변수를 활용하는 방법입니다. 

맨위에

let base = ""

선언해줍니다. 

그리고 그 아래에서 해당 base를 엑시오스를 통해 받아옵니다. 그리고 받아온 값을 base에 할당해줍니다. 

base = axios(~~~)

그리고 이 base를 리듀서에 저장합니다. 

이렇게 하면 useSelector로 통해 값을 가져올 수 있습니다. 

※ 핸드폰을 바꿨더니... 댓글 알림이 안와서.. 댓글이 달린지도 몰랐네요.. 죄송합니다. 

0

const {site_copyright} = useSelector((state) => state.config);

이런 방식으로도 해보셨나요?

사실 다른 방법으로 해결 했어요.. 여기 강사님 이젠 답변도 잘 안해주시고 이러니까..

급 후회됩니다. 매니저님한테 말하니까 주말에 달아주신다고 하는데 주말도 지나도 안달아주시고

그냥 저 혼자서 공부하려구요 

뒤쪽으로 가면 ckeditor 설정이나 다른 부분 막히는 곳도 있을텐데...

일단 모르는 부분은 질문 올려보세요

아니에요 ㅋㅋㅋ 이제 쪼금씩 잘 풀리기 시작해서~ 혼자 하려구요~ 

스터디하쟈님의 프로필 이미지
스터디하쟈

작성한 질문수

질문하기