@derekkite, @RoboZoom
Trying to implement @ngrx/entity for the first time. Getting the below error.
core.js:4442 ERROR TypeError: entities is not iterable
at addManyMutably (http://localhost:4200/vendor.js:126898:30)
at setAllMutably (http://localhost:4200/vendor.js:126911:9)
at Object.operation [as setAll] (http://localhost:4200/vendor.js:126833:27)
at http://localhost:4200/main.js:731:88
at http://localhost:4200/vendor.js:235769:26
at combination (http://localhost:4200/vendor.js:234089:37)
at onboardingReducer (http://localhost:4200/main.js:680:12)
at http://localhost:4200/vendor.js:234201:20
at combination (http://localhost:4200/vendor.js:234089:37)
at http://localhost:4200/vendor.js:234986:27
Below is my code snippet.
---Model---
export interface DataPayload {id: string; name: string;address: string; }
--Action--
export const getDataAction = createAction('[Get Data] Get data');
export const getDataSuccessAction = createAction('[Get Data] Get data successfully', props<{ data: DataPayload[] }>());
---Reducer---
export interface DataState extends EntityState<DataPayload> {}
export const DataAdapter: EntityAdapter<DataPayload> = createEntityAdapter<DataPayload>({selectId: (data: DataPayload) => data.id});
export const initialDataState: RefCountryState = refCountryAdapter.getInitialState({});
export const dataReducer = createReducer(
initialDataState,
on(getReferenceCountrySuccessAction, (state, action) => {
return refCountryAdapter.setAll(action.refCountries, state);
}));
---Effects---
getData$ = createEffect(() =>
this.actions$.pipe(ofType(getDataAction),
mergeMap(() => this.dataService.getData().pipe(
map((response) => {
console.log(response); // Here I am getting the data back as an array - {data: Array(14)}
return getDataSuccessAction( {refCountries});
})))));
Any help would be appreciated.
Thanks