首页 > 解决方案 > 有没有办法从材料表反应中删除货币前缀?

问题描述

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

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

这是用于创建表的源代码块,我从 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}

标签: reactjsmaterial-table

解决方案


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

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”。

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


推荐阅读