web-dev-qa-db-ja.com

Androidデバイスで必要なReact-NativeおよびIntlポリフィル

私は最近Android Studioと多くのコンポーネント/ sdkを更新しました。それ以来、React-Intlはintlライブラリがないと文句を言いましたが、以前はうまく機能していました。

intlポリフィルをインストールし、メインファイルApp.jsの最上部にインポートしました。また、react-intlからlocaleDataをインポートして追加します。次に、メッセージを表示せずにIntlProviderを指定してlocale内にビューをレンダリングします(現時点ではFormattedNumberのみを使用しています)

これは私のコードの簡略化されたバージョンです:

import 'intl';
import { IntlProvider, FormattedNumber, addLocaleData } from 'react-intl';
import en from 'react-intl/locale-data/en';

addLocaleData(en);

[...]

render() {
    return (
        <IntlProvider locale="en">
            <Text>
                <FormattedNumber value={123} />
            </Text>
        </IntlProvider>
    )
}

次のエラーが発生します。

[React Intl]数値のフォーマット中にエラーが発生しました。 ReferenceError:このオブジェクトのロケールデータはまだ提供されていません。

enter image description here

何が起こっているのかわかりません。誰かが同じ問題に遭遇しましたか?

ありがとう

19
alexmngn

react-intlからロケールデータをインポートする代わりに、intlからポリフィルとロケールデータをインポートする問題を解決しました

インストールintl

npm install intl

これをアプリの最上部に追加します。

import 'intl';
import 'intl/locale-data/jsonp/en';
31
alexmngn

ヘッドアップ、これはimport 'intl';が一番上にあり、react-intl。次のバージョンを使用:

"intl": "^1.2.5",
"react-intl": "^2.2.2",
7
user888750