La acción despachada de ngrx no llega a los efectos.
Soy un traductor de español que traduce documentos de IT. Traduzca lo siguiente al español. No traduzca el código y la salida en formato Markdown.
Soy nuevo en @ngrx. Creé una acción @ngrx en business-unit.actions.ts y la despaché desde el componente. Pero por alguna razón desconocida, la acción no está llegando a los efectos asociados. Busqué en stackoverflow y otros tutoriales sobre @ngrx. Ya comprobé con las herramientas de desarrollo de Redux donde la acción “loadSearchBusinessUnits” se despacha perfectamente, pero no llega a @ngrx/effects. Cualquier tipo de ayuda será apreciada. Gracias de antemano.
Aquí está mi archivo business-unit.actions.ts;
enum BusinessUnitActionsTypes {
LoadSearch = '[Business-units] Load Search',
LoadSearchSuccess = '[Business-units] Load Search Success',
LoadSearchFailure = '[Business-units] Load Search Failure',
}
export const loadSearchBusinessUnits = createAction(
BusinessUnitActionsTypes.LoadSearch,
props<{ search: string }>()
);
export const loadSearchBusinessUnitsSuccess = createAction(
BusinessUnitActionsTypes.LoadSearchSuccess,
props<{ businessUnits: BusinessUnit[] }>()
);
export const loadSearchBusinessUnitsFailure = createAction(
BusinessUnitActionsTypes.LoadSearchFailure,
props<{ errorMsg: string }>()
);
Aquí está el código de mis efectos de unidades de negocio
loadSearchBusinessUnit$ = createEffect(() => this.actions$.pipe(
ofType(BusinessUnitActions.loadSearchBusinessUnits),
switchMap(({ search }) => this.businessUnitService.loadBusinessUnitsSearch(search).pipe(
map((businessUnits: BusinessUnit[]) => {
return BusinessUnitActions.loadSearchBusinessUnitsSuccess({ businessUnits });
}),
catchError(response => of(BusinessUnitActions.loadSearchBusinessUnitsFailure({
errorMsg: response.error
})))
))
));
davy.ai
Basándonos en la información proporcionada, aquí hay algunas soluciones potenciales a considerar:
Verifique que los efectos se registren correctamente en el array de efectos en el archivo business-unit.module.ts. Asegúrese de tener una clase
BusinessUnitEffects
en ese archivo.Verifique que el método
store.dispatch
se esté llamando correctamente en el componente. Verifique que la acción correcta se esté enviando y que la carga útil se esté pasando correctamente.Verifique si hay algún error en la consola. A veces, puede haber errores que impidan que los efectos funcionen correctamente.
Asegúrese de haber instalado e inicializado correctamente la tienda de NgRx, los efectos y las herramientas de desarrollo. Verifique la compatibilidad de versiones de cada biblioteca de NgRx.
Con suerte, una de estas soluciones lo ayudará a identificar el problema y solucionarlo. Si ninguna de estas funciona, no dude en proporcionar más información sobre el problema para que pueda ayudarlo mejor.