【问题标题】:Is there a way to remove currency prefix from material-table react?有没有办法从材料表反应中删除货币前缀?
【发布时间】:2020-06-08 08:19:12
【问题描述】:

有什么办法可以从 react 的材料表中删除货币前缀,因为我在表上使用不同的货币,坚持一个前缀会变得混乱,因为我有不同的列来显示货币类型

任何帮助将不胜感激,谢谢

这是创建表的源代码,我从 API 端点获取数据

<MaterialTable style={{marginLeft:'10px', marginRight:'10px'}}
      title="INVOICES"
      columns={[
        { title: 'Seller Name', field: 'seller' },
        { title: 'Buyer Name', field: 'buyer' },
        { title: 'Invoice No', field: 'invoice_number' },
        { title: 'Currency', field: 'currency' },
        { title: 'Amount', field: 'invoice_amount', type:'currency', currencySetting:{ currencyCode:'USD', minimumFractionDigits:0, maximumFractionDigits:2}},
        { title: 'Invoice Date', field: 'invoice_date' },
        { title: 'Eligible Date', field: 'date_eligible' },
        { title: 'Due Date', field: 'due_date' },
        { title: 'Status', field: 'status' },
      ]}
      data={this.state.stats}

【问题讨论】:

  • 能否提供源代码?
  • 请说明您是如何使用它的,例如发布问题时如何呈现货币单元
  • 刚刚提供源代码
  • 您是否尝试更改此行中的设置? { title: 'Amount', field: 'invoice_amount', type:'currency', currencySetting:{ currencyCode:'USD', minimumFractionDigits:0, maximumFractionDigits:2}},
  • 是的,将 currencyCode 更改为空字符串,代码中断,我也尝试完全省略 currencyCode 但默认前缀为美元。

标签: reactjs material-table


【解决方案1】:

我没有使用材料表,但我用它玩了一点。这是造成错误的材料表的源代码:

Intl.NumberFormat(currencySetting.locale !== undefined ? currencySetting.locale : 'en-US', {
          style: 'currency',
          currency: currencySetting.currencyCode !== undefined ? currencySetting.currencyCode : 'USD',
          minimumFractionDigits: currencySetting.minimumFractionDigits !== undefined ? currencySetting.minimumFractionDigits : 2,
          maximumFractionDigits: currencySetting.maximumFractionDigits !== undefined ? currencySetting.maximumFractionDigits : 2
        }).format(value !== undefined ? value : 0);

它使用 Intl.NumberFormat 标准 Javascript 函数来格式化货币。该功能支持47个国家。 你可以在这里玩这个功能:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat

例如对于匈牙利(我的国家),我可以这样称呼它:

new Intl.NumberFormat('hu', { style: 'currency', currency: 'huf' }).format(number);

所以我应该将 columnDefinition 更改为:

{ title: 'Amount', field: 'invoice_amount', type:'currency', currencySetting:{ locale: 'hu',currencyCode:'huf', minimumFractionDigits:0, maximumFractionDigits:2}},

请注意,我添加了一个区域设置:“hu”,并将货币代码更改为“huf”。

如果您所在的国家/地区不在受支持的国家/地区。尝试使用类似格式的其他内容。

【讨论】:

  • 好的,让我试试这个方法。感谢您的帮助,我很感激
猜你喜欢
  • 2019-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-27
  • 1970-01-01
  • 1970-01-01
  • 2022-06-30
  • 2019-12-27
相关资源
最近更新 更多