강의

멘토링

커뮤니티

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

Amen님의 프로필 이미지
Amen

작성한 질문수

웹 게임을 만들며 배우는 React

7-3. action 만들어 dispatch 하기

CLICK_CELL 불변성위해 state값 복사하는거 좀 더 자세하게 설명부탁드립니다..

해결된 질문

작성

·

193

0

이부분  내부 데이터를 바꾸려고 상수하나 만들어서 거기에 table state 값 복사하는

const tableData = [...state.tableData]; 는 이해해였습니다. 

tableData[action.row] = [...tableData[action.row]] 를 한번더 값을 복사하는지 이해가 안되네요..

또 아래 return {

        ...state,

        tableData

}

에서 tableData는 state의 tableData가 아니라 새로생성한 tableData const값이 들어가는거같은데.

React에서 자동적으로 감지해서 바꿔주는건가요?

그럼 const tableData 값의 이름이 다르면 감지못하는건지..

답변 1

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

tableData는 이차원 배열입니다. [[], []] 이런 모양인데요.

바깥쪽 []랑, 안쪽 []랑 모두 객체라서 불변성을 지켜야 합니다.

const tableData = [...state.tableData]; 는 바깥쪽. 

tableData[action.row] = [...tableData[action.row]]  는 안쪽입니다.

또한 return도 마찬가지입니다. tableData를 불변성 지켜진 데이터로 수정해야 합니다. 그게 const tableData이고요.

Amen님의 프로필 이미지
Amen

작성한 질문수

질문하기