You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

是否可以覆写Spartacus的Ngrx Effect?如何禁用ProductReviewEffects默认逻辑?

解决方法

要禁用Spartacus默认的POST_PRODUCT_REVIEW_SUCCESS对应全局提示逻辑,可通过以下两种方案实现,按需选择即可:

方案一:全量替换默认ProductReviewEffects(推荐,符合Spartacus扩展规范)

Spartacus支持通过配置直接禁用指定的默认Effect类,你只需要把不需要的默认Effect类排除,再注册自己的自定义Effect即可:

  1. 在你的自定义模块中禁用默认ProductReviewEffects
import { NgModule } from '@angular/core';
import { StorefrontModule } from '@spartacus/storefront';
import { ProductReviewEffects } from '@spartacus/product';

@NgModule({
  imports: [
    StorefrontModule.withConfig({
      effects: {
        // 禁用默认的评论Effect类
        disable: [ProductReviewEffects]
      }
    })
  ]
})
export class YourCustomFeatureModule {}
  1. 注册你自己编写的自定义Effect
    如果默认ProductReviewEffects里还有其他逻辑你需要保留,可以把默认类里除了要删除的showGlobalMessageOnPostProductReviewSuccess$之外的代码都复制到你的自定义Effect类中,再注册即可:
import { EffectsModule } from '@ngrx/effects';
import { YourCustomProductReviewEffects } from './custom-product-review.effects';

@NgModule({
  imports: [
    // 保留之前的禁用配置
    StorefrontModule.withConfig({
      effects: {
        disable: [ProductReviewEffects]
      }
    }),
    // 注册你的自定义Effect
    EffectsModule.forFeature([YourCustomProductReviewEffects])
  ]
})
export class YourCustomFeatureModule {}

方案二:仅屏蔽对应全局提示(无需替换Effect,适合只需要取消提示的场景)

如果你不需要改动其他评论相关逻辑,只是不想显示提交成功的全局提示,直接覆写对应i18n翻译值即可:
在你的i18n资源配置里,把productReview.thankYouForReview的取值设为空字符串,提示就不会显示出来。

内容的提问来源于stack exchange,提问作者tanjadab

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 01:15:00