Redux를 사용할 때 아주 중요한 이슈 중 하나가 바로 불변성이다. Redux에서는 어떤 데이터를 변경하려 할 때 그 데이터를 직접 변경하는 것이 아니고 내용이 바뀐 새로운 객체를 생성해야 한다.
<script>
function todos(state = ['react', 'redux'], action) {
switch (action.type) {
case 'ADD_TODO':
state.push(action.text);
default:
return state;
};
};
</script>
이와 같이 값을 직접적으로 변경하는 것이 아니라 스프레드 연산자와 같이 새로운 배열을 반환해야 한다.
<script>
function todos(state = ['react', 'redux'], action) {
switch (action.type) {
case 'ADD_TODO':
return [...state, action.text];
default:
return state;
}
}
</script>