Конфигурация:
Vite
Typescript
react-router-dom 6.11.2
redux toolkit 1.9.5
Есть следующий код в сторе:
import { configureStore } from "@reduxjs/toolkit";
import { userReducer } from "@store/user/user.slice.ts";
export const store = configureStore({
reducer: {
user: userReducer
}
})
export type RootState = ReturnType<typeof store.getState>
export type AppDispatch = typeof store.dispatch
И слайс юзера:
import { createSlice, PayloadAction } from "@reduxjs/toolkit";
import { IUser } from "@shared/api";
const initialState: IUser = {
id: 0,
email: ''
}
const userSlice = createSlice({
name: 'user',
initialState,
reducers: {
setUser: (state, action: PayloadAction<IUser>) => {
state.id = action.payload.id
state.email = action.payload.email
}
}
})
export const {setUser} = userSlice.actions
export const userReducer = userSlice.reducer
При входе в аккаунт юзер устанавливается с помощью полученных данных с бэка:
// fetch - функция, которую предоставляет кастомный хук. На это можете не обращать внимание.
fetch(`${AUTH_URL}/login`, 'post', authData,
(user: IUser) => {
dispatch(setUser(user))
}
)
Все это отрабатывает нормально,
но при переходе на другую страницу user снова становится initialState. Не понимаю, в чем проблема.