我们正在使用 react 和 react-intl 并且出于某种原因需要编写我们自己的自定义输入字段。虽然可以将数字传递给 react-intl API 并正确格式化数字,但我们如何才能找出千位分隔符和小数点等当前语言环境字符?
问问题
1226 次
1 回答
0
您可以在注入对象上访问Intl.NumberFormatter 的 formatToParts方法。react-intl's
intl
import React, { Component } from 'react';
import { injectIntl, intlShape } from 'react-intl';
class MyComponent extends Component {
static propTypes = {
intl: intlShape.isRequired,
};
render() {
const parts = this.props.intl.formatters
.getNumberFormat(this.props.intl.locale)
.formatToParts(9999.99);
return (
<div>
<div>
Decimal point:
{parts.find(i => i.type === 'decimal').value}
</div>
<div>
Thousands separator:
{parts.find(i => i.type === 'group').value}
</div>
</div>
);
}
}
export default injectIntl(MyComponent);
虽然这不是我想要的那样干净的解决方案,但它是迄今为止我发现的最好的解决方案,至少您不会猜测每个字符属于数字的哪些部分。
于 2018-05-27T22:07:46.263 回答