В React, как преобразовать код страны в название страны, используя данные о стране?
Используя данные о стране, я думал, что смогу
npm install --save country-data
а затем в коде:
import CountryData from "country-data";
и использовать
CountryData.countries["TW"]
чтобы получить данные о стране, и
CountryData.countries["TW"].name
чтобы получить имя. Но CountryData.countries["TW"]
получает undefined
уже. Как это можно сделать? Существуют ли лучшие альтернативы использованию country-data
?
PS На страницах npm и github для данных о странах есть некоторая информация о том, как использовать их с веб-пакетом, что, как я подозреваю, необходимо для использования с React. Но я сделал их
npm install json-loader --save-dev
добавьте в webpack.config.js:
// ...
loaders: [
// other loaders
{ test: /\.json$/, loader: 'json' },
],
// ...
и это пока не работает.
2 ответа
Кажется, вы используете npm module
неверно
Согласно документации вы можете сделать это следующим образом
npm install --save country-data
И импортировать это как
import {countries} from 'country-data';
а затем использовать его как
console.log(countries["TW"].name);
Попробуйте библиотеку страновых списков
const { getCode, getName } = require('country-list');
console.log(getCode('Belgium')); // BE
console.log(getName('BE')); // Belgium
Если вы используете
var CountryData = require('country-data');
console.log(CountryData.countries['TW']);
Это работает выходы как таковые
{ alpha2: 'TW',
alpha3: 'TWN',
countryCallingCodes: [ '+886' ],
currencies: [ 'TWD' ],
emoji: '',
ioc: 'TPE',
languages: [ 'zho' ],
name: 'Taiwan',
status: 'assigned' }
Это может быть из-за того, как модуль экспортируется?
Это тоже работает
import CountryData from 'country-data'
console.log(JSON.stringify(CountryData.countries['TW']));
Выходы как таковые
{"alpha2":"TW","alpha3":"TWN","countryCallingCodes":["+886"],"currencies":["TWD"],"emoji":"","ioc":"TPE","languages":["zho"],"name":"Taiwan","status":"assigned"}