인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

wanjin.lee님의 프로필 이미지
wanjin.lee

작성한 질문수

실전 리액트 프로그래밍

몇 가지 리덕스 사용 팁

action에서 배열 state를 불러올 수 있는 방법이 있을까요?

작성

·

298

0

안녕하세요. 

createReducer 사용해서 구현하던 중 문제가 발생하여 문의 드립니다.

state에 배열을 넣은 뒤, action에서 필요한 일이 있어 불러오려고 했더니 값이 없다고 뜨더라구요.

예를 들어서

const INITIAL_STATE = { test: [1, 2, 3] }

...

[Types.SetTest]: (state, action) => {

  console.log(state.test)

}

이런 식으로 했는데  로그에 [Proxy, Proxy, Proxy, Proxy] 이렇게 뜨고 값을 가져올 수가 없었습니다.

혹시 어떻게 해야 state 값을 가져올 수 있을까요?

답변 1

0

이재승님의 프로필 이미지
이재승
지식공유자

안녕하세요
(중요한 내용은 아니지만) 아마 위 코드처럼 [1, 2, 3] 를 입력했다면 [Proxy, Proxy, Proxy] 로 출력되지는 않을 것 같습니다
객체의 배열을 입력하신 것으로 이해하겠습니다

reducer 내부에서는 immer 가 모든 객체를 proxy 로 만들어서 그렇습니다
(reducer 외부에서)state 값을 사용하는 곳에서는 저렇게(proxy로) 출력되지 않을거에요
reducer 내부는 state 를 변경하는 것이 유일한 목적이라서 문제가 없어보입니다

위 코드에서 아래처럼 입력한다면 1, 2, 3 이 출력될 것 같습니다
console.log(state.test[0], state.test[1], state.test[2]) 

wanjin.lee님의 프로필 이미지
wanjin.lee

작성한 질문수

질문하기