- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
将一些功能效果切换到新的 createEffct()
模式后,它们调用的所有服务请求现在都在我的控制台输出中触发了两次。
这是 Action :
export const getSetting = createAction(
'[Practitioner Settings] Get Setting',
props<{ name: string }>(),
);
下面是一个使用旧语法的 Effect 示例:
@Effect()
getSetting$: Observable<Action> = this.actions.pipe(
ofType(PractitionerSettingsActionTypes.GetSetting),
map((action: PractitionerSettingsActions.GetSetting) => action.name),
switchMap((name: string) => {
return this.practitionerSetingsService
.getSetting(name)
.pipe(
map(response => new PractitionerSettingsActions.GetSettingSuccess(response)),
)
}),
);
@Effect()
getSetting = createEffect(() =>
this.actions.pipe(
ofType(PractitionerSettingsActions.getSetting),
mergeMap(({ name }) => {
return this.practitionerSetingsService
.getSetting(name)
.pipe(
map(response => PractitionerSettingsActions.getSettingSuccess({ setting: response })),
)
}),
)
);
我怀疑是 mergeMap
运算符导致了这种行为,因为这是两者之间的唯一区别,但我不确定为什么会导致这种情况,或者如何在另一个中访问操作的有效负载方式。
除了将 Ngrx Actions、Reducers 和 Effects 更新为 v8 模式之外,我没有对我的应用程序进行任何其他更改,这会导致服务调用执行两次。
如果不是 mergeMap,我应该使用什么运算符来访问操作负载?如果 mergeMap 是正确的,为什么我的效果运行不止一次?
最佳答案
如果您检查链接的示例,@Effect()
注释不存在,它存在于问题代码中。我认为这就是它以这种方式为您工作的原因
关于angular - 使用新的 Ngrx 8 createEffect 模式时多次触发服务方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57317105/
有没有办法使用外部依赖项来触发 Solid 的 createEffect,就像 React 的 useEffect 依赖项数组一样? 我想在 location.pathname 更改时调用 setSh
createEffect 和有什么区别对比 @Effect ngrx中的注释? @Injectable() export class ContactsEffects { constructor(
将一些功能效果切换到新的 createEffct() 模式后,它们调用的所有服务请求现在都在我的控制台输出中触发了两次。 这是 Action : export const getSetting = c
我是一名优秀的程序员,十分优秀!