spartacus-storefront - Spartacus - 在货币或语言更改时重新加载组件
问题描述
我面临一个与货币和语言变化有关的问题。由于某些实现,我们不得不为产品 (product-service.ts) 重写默认的 spartacus 服务,而不是调用
return productCode
? this.productLoading.get(productCode, [].concat(scopes))
: of(undefined);
我们直接调用我们的连接器,以便从产品中获取我们需要的所有信息。我们现在面临的问题是,当用户在 PDP 中并且想要更改货币或语言时,调用 product-service.ts 的组件不会更新并保留错误信息。如何在不使用默认代码的情况下完成相同的默认 Spartacus 行为?
解决方案
您可以观察货币和语言上下文,然后重新计算所有前端数据。例如,如果您需要根据货币变化重新加载,您可以调用它
this.currencyService.getActive().subscribe(() => {
this.doSomething();
});
LanguageService 也是如此。
我也必须这样做,以更新付款方式,而且效果非常好。
推荐阅读
- mysql - mysql sum() 和双重结果使用多个连接
- html - 最多 5 位小数的正则表达式,由 + 分隔
- javascript - 如何在 React 中使用 JS 中的 CSS 更改悬停按钮中的文本
- javascript - 根据屏幕宽度不同的视频来源
- sql - SQL - 一个表中有两个 CHECK 条件
- c - 链接描述文件定义的变量
- python-3.x - 如何保持 HTTP 会话打开
- python - Python Selenium - 识别和单击 Angular 元素
- python - Group By 和 Count 嵌套字典列表中值的出现次数
- r - 我将如何使用 FFT 分析 R、Rstudio 中的音频波