如何解决Intl.Numberformat,currencyDisplay:Next.Js 9.4.4不支持“ narrowSymbol”
我正在使用Next.JS 9.4.4
尝试使用时:
new Intl.NumberFormat('en-GB',{ style: 'currency',currency: currency,useGrouping: true,currencyDisplay: 'narrowSymbol'});
我收到错误:
RangeError: Value narrowSymbol out of range for Intl.NumberFormat options property currencyDisplay
at new NumberFormat
narrowSymbol是受支持的属性,您可以看到here,并且我已经在另一个未使用Next的项目中成功使用了它。
我是否缺少某些东西,或者可能有解决方法?
解决方法
听起来是服务器端代码引起了问题,客户端代码应该没有问题。
可能的解决方案是安装具有完全国际化支持(ICU)的节点。
这里是node doc
的链接 ,这对您不起作用吗?
function formatMoney(amount) {
return new Intl.NumberFormat('en-GB',{
style: 'currency',currency: 'GBP',useGrouping: true,currencyDisplay: 'narrowSymbol',}).format(amount)
}
console.log(formatMoney(1000.00))
,
我在iOS14上使用React Native遇到了同样的问题。完全不支持arrowSymbol。
,问题可能是您使用的浏览器不支持 narrowSymbol
货币显示。您可以在此处查看我可以使用吗:
https://caniuse.com/?search=currencyDisplay
您会看到一些浏览器(如 Safari)如何添加注释:
Doesn't support currencyDisplay: 'narrowSymbol'.
对于这些不支持它的浏览器,您可能需要对 Intl.NumberFormat
进行 polyfill,以便您可以访问 narrowSymbol
。
有很多 polyfill 选项。我已经将 formatjs.io 用于这个确切的问题。您可以在此处了解更多信息:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。