我想修复以下警告:
ESLint: Calling 'store.dispatch' in 'Effect' is forbidden.
所讨论的效果通常是这样的:
代码:
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))
)
如何正确做?
您可以使用触发效果的操作以及从效果返回的操作来锁定/解锁数据。
在您的情况下,这意味着
actions.update
,并且操作在 map
方法中返回。