Skip to content

Qvil Blog

[Redux] RTK Reset(Clear) to initial state

Redux, Redux DevTools, Immer1 min read

How to reset draft to initial state in reducer?(Clear reducer)

아래와 같이 State를 Reset하려는 경우 동작하지 않는다.

1const userSlice = createSlice({
2 name,
3 initialState,
4 reducers: {
5 clear: (state) => {
6 state = initialState;
7 },
8 },
9});

Redux DevTools(이하 RTK)은 내부적으로 Immer를 사용한다.

It uses the Immer library internally (Simplifying Reducers with createReducer)

따라서 Immer의 원리를 이해하고 아래와 같이 수정하면 된다. 참고링크도 Immer의 이슈링크다.

initialState를 return하면 된다.

1const userSlice = createSlice({
2 name,
3 initialState,
4 reducers: {
5 clear: () => initialState,
6 },
7});

참고