Как получить предпочтительные для пользователя единицы измерения? Метры или мили

#javascript #android #ios #react-native

#javascript #Android #iOS #react-native

Вопрос:

Я разрабатываю приложение на react native и хотел бы отобразить некоторое расстояние для своих пользователей.

Поскольку я живу в Европе, я использовал системы «Километров», но я хотел бы знать свои пользовательские настройки для этих показателей, чтобы я мог отображать значение с правильной единицей измерения.

Я уже использовал этот модуль:https://github.com/react-native-community/react-native-device-info

Но, похоже, у него нет такой функциональности.

Знаете ли вы какой-нибудь модуль, который имеет? Или быстрый способ связать какую-либо встроенную функцию?

Заранее благодарю вас

Комментарии:

1. Вы могли бы использовать getDeviceCountry() с react-native-device-info , есть только несколько стран, которые используют мили, чтобы вы могли жестко проверять эти страны

2. Полезно знать, что большинство стран используют метрическую систему. В то время как в Великобритании и США все еще используются имперские единицы для определения расстояний на дорогах, в большинстве случаев они используют метрическую систему (наука, инженерия, медицина, оборона …).

Ответ №1:

Как уже предлагалось в комментариях, вы можете использовать react-native-device-info . Смотрите ниже рабочий пример:

   transformDistance(distanceKM) {
    const countryCode = DeviceInfo.getDeviceCountry(); // get country code 
    const factor = 0.621371; // constant scale factor: 1km = 0.621371 miles
    if (countryCode == "US") {
      return <Text> {distanceKM * factor} Miles </Text>;
    } 
    // add other countries as additional if statements here 
    //

    //otherwise return distance in metric unit
    return <Text> {distanceKM} Km </Text>;
  }

  render() {
    return (
      <View style={styles.container}>
        <View>
     {this.transformDistance(5)} // outputs 3.106855 Miles or 5 Km
        </View>
      </View>
    );
  }
  

Комментарии:

1. Здравствуйте, спасибо за советы! Я проверю список стран в Google, чтобы добавить больше, чем США, если это необходимо 🙂