I want to fix the following warning:ESLint: Calling 'store.dispatch' in 'Effect' is forbidden.
The effect in question does generally this:
Code:
this.actions$.pipe(
ofType(actions.update),
switchMap(action => {
this.store.dispatch(actions.lockData(action.data.id));
return this.backendService.update$(action.data)
.pipe(
map(...),
catchError(...),
finalize(()=> this.store.dispatch(actions.unlockData(action.data.id))
)
How to do it properly?
You can lock/unlock the data with the action that triggers the effect, and with the action that is returned from the effect.
In your case this means actions.update
, and the action returned in the map
method.