reducer 함수를 정의할때 action.type 을 분별하기 위해 switch 문을 사용하는 경우가 있다.
이 경우 초기의 상태, 즉 아무런 action 을 취하지 않았을 때의 return 값을 정해줘야 하는데
...
case action.type == DELETE_TODO :
return{
...state,
//해당 id 의 객체를 제외한 나머지 배열을 반환
todos: todos.filter(todo => todo.id !== action.id)
}
default:
return initialState
}
}
객체안에 또 현재의 state 객체를 감싸면 안된다. return null 로 적는 실수도 조심하자.
...
case action.type == DELETE_TODO :
return{
...state,
//해당 id 의 객체를 제외한 나머지 배열을 반환
todos: todos.filter(todo => todo.id !== action.id)
}
default:
return { initialState }
//return null
}
}