2

我们正在使用 react 和 react-intl 并且出于某种原因需要编写我们自己的自定义输入字段。虽然可以将数字传递给 react-intl API 并正确格式化数字,但我们如何才能找出千位分隔符和小数点等当前语言环境字符?

4

1 回答 1

0

您可以在注入对象上访问Intl.NumberFormatter 的 formatToParts方法。react-intl'sintl

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 回答