consider I was using redux in this project and it was working properly till I started adding the redux-persist to it I faced new error, which is the following
`
ordersSlice.js?t=1715116877200:15 Uncaught TypeError: Cannot read properties of undefined (reading ‘push’)
`
this is how I configured my store.js
`
// src/redux/store.js
import { configureStore, combineReducers } from '@reduxjs/toolkit';
import { persistStore, persistReducer } from 'redux-persist';
import storage from 'redux-persist/lib/storage';
import generalInfoReducer from '../features/generalInfoSlice';
import predefinedItemsReducer from '../features/predefinedItemsSlice';
import ordersReducer from '../features/ordersSlice';
const persistConfig = {
key: 'root',
storage,
whitelist: ['generalInfo', 'predefinedItems', 'orders']
};
const rootReducer = combineReducers({
generalInfo: generalInfoReducer,
predefinedItems: predefinedItemsReducer,
orders: ordersReducer,
});
const persistedReducer = persistReducer(persistConfig, rootReducer);
export const store = configureStore({
reducer: persistedReducer,
});
export const persistor = persistStore(store);
and the error I am facing when I am calling a reducer in a specific slice
the call is like following in one of my components
`
if (person !== '' && order_items.length !== 0) {
dispatch(addOrder({ person: person, order_items: order_items }));
clearFunction();
}
}
`
and the addOrder
is defined in the slice as following
`
import { createSlice } from '@reduxjs/toolkit';
const initialState = {
orders: [],
};
export const ordersSlice = createSlice({
name: 'orders',
initialState,
reducers: {
addOrder: (state, action) => {
console.log(action.payload);
state.orders.push(action.payload);
},
removeItem(state, action) {
const { orderIndex, itemIndex } = action.payload;
state.orders[orderIndex].order_items.splice(itemIndex, 1);
if (state.orders[orderIndex].order_items.length === 0) {
state.orders.splice(orderIndex, 1);
}
},
removePreDefinedItem(state, action) {
const { itemID } = action.payload;
for (let i = state.orders.length - 1; i >= 0; i--) {
const order = state.orders[i];
const itemIndex = order.order_items.findIndex(obj => parseInt(obj.item_id) === itemID);
if (itemIndex !== -1) {
order.order_items.splice(itemIndex, 1);
if (order.order_items.length === 0) {
state.orders.splice(i, 1);
}
}
}
},
},
});
export const { addOrder, removeItem, removePreDefinedItem } = ordersSlice.actions;
export const selectOrders = (state) => state.orders.orders;
export default ordersSlice.reducer;
the content of the payload is as following
{person: ‘zvfvdvd’, order_items: Array(1)}
order_items: Array(1)
0: {item_id: ‘2’, name: ‘dbdbd’, price: ‘2’, quantity: 2}
length: 1
[[Prototype]]: Array(0)
person: “zvfvdvd”
any suggestion how to fix that and why its happening.
I tried to add the persist to avoid data lose, and I didnt change anything except adding the persistence, and will be all fine, but as you saw I am facing an error IDK why.