Rodaja
import { createSlice } from '@reduxjs/toolkit'; const initialState: { value: number } = { value: 0 }; export const testSlice = createSlice({ name: 'test', initialState, reducers: { test: (state) => { state.value += 1; }, }, }); export const { test } = testSlice.actions;Combinar
import { combineReducers } from '@reduxjs/toolkit'; import { authSlice } from './auth'; import { productsSlice } from './products'; import { testSlice } from './test'; import { userSlice } from './user'; export const rootReducer = combineReducers({ user: userSlice.reducer, auth: authSlice.reducer, products: productsSlice.reducer, test: testSlice.reducer, }); export type RootState = ReturnType<typeof rootReducer>;Tienda
import { configureStore } from '@reduxjs/toolkit'; import storage from 'utils/storage'; import { rootReducer } from './rootReducer'; declare global { interface Window { store: any; } } const reHydrateStore = () => { if (storage.getToken() !== null) { return storage.getToken(); } return false; }; // !TODO add types // @ts-ignore const localStorageMiddleware = (store) => (next) => (action) => { if (action.type.match('auth')) { const result = next(action); storage.setToken(store.getState().auth.token); return result; } return next(action); }; export const store = configureStore({ reducer: rootReducer, preloadedState: { auth: { token: reHydrateStore() || '', loading: false, }, }, middleware: (getDefaultMiddleware) => getDefaultMiddleware().concat(localStorageMiddleware), }); window.store = store.getState();Cuando envío store.test a la consola, el valor sigue siendo antiguo, pero el reductor de autenticación funciona correctamente. También veo que el estado después de la actualización en los reductores es 0.
¿Por qué no se actualiza el estado?
Arriba hay ejemplos de mi código: