Vishali
Vishali

Reputation: 1397

React Native values are not updating in Redux store

Here is my action.js:

export const update = user => ({
    type: 'UPDATE_USER',
    payload: user,
  });

Here is my reducer.js:

const initialState = {
    name: '',
    logo:'',
    mobile:'',
  };

  export default (state = initialState, action) => {
    const { type, payload } = action;

    switch (type) {
      case 'UPDATE_USER':
        return {
            ...state,
            user: payload.user,
          };
      
      default:
        return state;
    }
  };

Here is my store.js:

import { createStore, applyMiddleware } from "redux";
import thunk from "redux-thunk";
import userReducer from "../reducers/userReducer";

const middleware = [thunk];
const store = createStore(userReducer, applyMiddleware(...middleware));
export default store;

Here I am setting data:

 let user = {
            name: 'abcd',
            logo: result.payload.data.logo,
            mobile: '0123456789'
          };
          dispatch(update(user));

Trying to get the value in component

const state = useSelector((state) => state);
  console.log('statevalue',state);

I am using Redux to store loggedIn user data to render with UI Component. After setting data the values in console printing empty. The user details is not updated. How can I fix this?

Note value in console

'statevalue', { name: '', logo: '', mobile: '', user: undefined }

Expected output:

'statevalue', { name: 'abcd', logo: 'https://lfkgjkfk', mobile: '0123456789'}

Upvotes: 0

Views: 41

Answers (1)

vinayr
vinayr

Reputation: 11234

Update your reducer with this change -

      case 'UPDATE_USER':
        return {
            ...state,
            ...payload,
          };

Upvotes: 2

Related Questions