簡體   English   中英

React.js-LocalLocalString()的受控輸入

[英]React.js - Controlled input toLocaleString()

我想獲取一串數字並添加逗號以為長號創建更具可讀性的格式。 通常我會使用toLocaleString()但是在受控輸入下它無法正常工作。

在我的代碼中,我正在做:

  handleChange(event) {
    const parseNumber = parseInt(event.target.value);
    const toLocale = parseNumber.toLocaleString();
    this.setState({ value: toLocale });
  }

輸入3個數字后,它將重置該字段-有什么想法嗎?

https://codesandbox.io/s/91q75k22mo

工作解決方案-在您的handleChange函數中,更改以下內容:

const toNumber = Number(event.target.value);

對此:

const toNumber = Number(event.target.value.replace(/\D/g, ''));

它不起作用的原因是因為它基於輸入值創建了一個Number ,它不是純數字,而是帶格式的字符串。 因此,它包含非數字字符。 上面的代碼只是刪除了非數字字符(盡管現在您知道了這個問題,還有其他方法可以解決)。

您可以使用react-intl FormattedNumber 該文檔位於此處: https : //github.com/yahoo/react-intl/wiki/Components#number-formatting-components

一個樣品:

<IntlProvider locale='en'>
  <FormattedNumber value={examples.negativeNumber} />
</IntlProvider>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM