rt2zz / redux-persist

persist and rehydrate a redux store
MIT License
12.91k stars 863 forks source link

Unexpected keys "user", "username", "product" found in previous state received by the reducer. Expected to find one of the known reducer keys instead: "loginReducer", "productsReducer". Unexpected keys will be ignored. #1367

Open byambaa12 opened 2 years ago

byambaa12 commented 2 years ago

Unexpected keys "user", "username", "product" found in previous state received by the reducer. Expected to find one of the known reducer keys instead: "loginReducer", "productsReducer". Unexpected keys will be ignored. product-reducer.js

import { ADD_PRODUCT, LOAD_PRODUCTS } from "./products-actions";

const initialState = {
  product: []
};
export default (state = initialState, action)=> {
  switch (action.type) {
    case ADD_PRODUCT: {
      console.log("stateeeeee-----------",action.data)

      return {
        product: state.product.concat(action.data?.product)

      };
    }
    case LOAD_PRODUCTS: {
      console.log("reducer..",action.data);
      return {
        product: action.data
      };
    }
    default:
      return state;
  }
};

user-reducer.js

import { ADD_USER, LOAD_USER } from "./login-actions";
const initialState = {
  user: [],
  username: null,
};

export default (state = initialState, action)=> {
  switch (action.type) {
    case ADD_USER: {
      console.log("stateeeeee-----------",action.data)
      return {
        user: state.user.concat(action.data?.user),
        username: action.data?.user?.username
      };
    }
    case LOAD_USER: {
      console.log("reducer..",action.data);
      return {
        user: action.data,
        username: action.data.user
      };
    }
    default:
      return state;
  }
};

rootReducer.js

import { combineReducers } from "redux";

import loginReducer from "../store/login-reducer";
import productsReducer from "../store/products-reducer";

const rootReducer = combineReducers({
    loginReducer,
    productsReducer,
});

export default rootReducer;

store.js

import AsyncStorage from '@react-native-async-storage/async-storage';
import { persistReducer , persistStore} from 'redux-persist';
import thunk from 'redux-thunk';
import { createStore, combineReducers,applyMiddleware } from 'redux';
import productsReducer from '../store/products-reducer';
import loginReducer from '../store/login-reducer';
import rootReducer from './rootReducer';
const persistConfig = {
    key: 'root',
    storage: AsyncStorage
  };
  const persistedReducer = persistReducer(persistConfig,rootReducer)
  console.log("NoOOWshoon root reducer")
  export const store = createStore(persistedReducer, applyMiddleware(thunk));
  export const persistor = persistStore(store);