Search code examples
angularngrx

How to update an object's property from another object ngrx


i have this state

interface ILeadsPageState {
  leadsList    : LeadBasicDto[]
  isLoading    : boolean;
  error        : any;
}
export interface ILeadsState {
  leadsListPage    : ILeadsPageState
}
//--------------------------------------------------------------------------------------
// State Initialization
//--------------------------------------------------------------------------------------
export const InitialLeadsState: ILeadsState = {
  leadsListPage    : {
    leadsList : [],
    isLoading : true,
    error     : null
  }
};

And my reducer is:

const leadsReducer = createReducer(
  InitialLeadsState,
  on(actions.loadLeads, (state) => **({ ...state, XXXXXXXXX  }))**, 
);

How I can modify the isLoading property on the action loadLeads, I don't find any way.


Solution

  • on(actions.loadLeads, (state) => 
      ({  leadsListPage  : { ...state.leadsListPage,  isLoading: false }    })), 
    

    Or just use ngrx-immer

    immerOn(actions.loadLeads, (state) => {
      state.leadsListPage.isLoading = false
    }