首页 > 解决方案 > Spartacus - 在货币或语言更改时重新加载组件

问题描述

我面临一个与货币和语言变化有关的问题。由于某些实现,我们不得不为产品 (product-service.ts) 重写默认的 spartacus 服务,而不是调用

return productCode
      ? this.productLoading.get(productCode, [].concat(scopes))
      : of(undefined);

我们直接调用我们的连接器,以便从产品中获取我们需要的所有信息。我们现在面临的问题是,当用户在 PDP 中并且想要更改货币或语言时,调用 product-service.ts 的组件不会更新并保留错误信息。如何在不使用默认代码的情况下完成相同的默认 Spartacus 行为?

标签: spartacus-storefront

解决方案


您可以观察货币和语言上下文,然后重新计算所有前端数据。例如,如果您需要根据货币变化重新加载,您可以调用它

this.currencyService.getActive().subscribe(() => {
  this.doSomething();
});

LanguageService 也是如此。

我也必须这样做,以更新付款方式,而且效果非常好。


推荐阅读