2017-01-19 6 views
11

Недавно я обновил свою Android-студию и многие компоненты/sdk, и с тех пор React-Intl жалуется на недостающую библиотеку , хотя раньше она работала нормально.На Android-устройстве требуется реактивная и международная полифония

Я установил polyfill intl, и я импортирую его в самый верх моего главного файла App.js. Я также импортирую localeData от react-intl и добавьте его. Затем я сделать мой взгляд в 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] Error formatting number. ReferenceError: No locale data has been provided for this object yet.

enter image description here

Я не понимаю, что происходит. Кто-нибудь сталкивается с той же проблемой?

Благодаря

ответ

9

Вместо импорта локали-данных из react-intl, я решил проблему с импортом в polyfill и региональные данные intl

Установка intl

npm install intl 

Добавьте это в самом вверху вашего приложения:

import 'intl'; 
import 'intl/locale-data/jsonp/en'; 
+3

Благодарим вас за сохранение всей моей жизни. – Suho

2

Heads up, теперь это работает, только делая import 'intl'; вверху и все еще загружая данные локали с react-intl. Использование следующих версий:

"intl": "^1.2.5", 
"react-intl": "^2.2.2", 
+1

Это также работает с «реакцией-intl»: «^ 2.3.0» – Mati