8

我正在尝试获取当前的设备国家/地区,但没有找到任何东西。在 React Native 中有什么可以做的吗?我尝试使用react-native-device-info,但它也不支持,但在以前的版本中,它可以通过 getDeviceCountry() 获得。现在对于最新版本,它显示错误:

TypeError:_reactNativeDeviceInfo.default.getDeviceCountry 不是函数。(在 '_reactNativeDeviceInfo.default.getDeviceCountry()' 中,'_reactNativeDeviceInfo.default.getDeviceCountry' 未定义)

4

4 回答 4

13

根据最新版本的react-native-device-info文档,他们已将一些 api 移动到react-native-localize以减少 react-native-community 模块中的重复。react-native-localize非常适合我。

设置:

$ npm install --save react-native-localize
# --- or ---
$ yarn add react-native-localize

用法:

import * as RNLocalize from "react-native-localize";

console.log(RNLocalize.getLocales());
console.log(RNLocalize.getCurrencies());
console.log(RNLocalize.getCountry());
console.log(RNLocalize.getCalendar());
console.log(RNLocalize.getTemperatureUnit());
console.log(RNLocalize.getTimeZone());
console.log(RNLocalize.uses24HourClock());

还有很多。有关详细说明,请通过给定链接访问他们的官方文档:react-native-localize

于 2019-10-01T09:17:07.923 回答
1

它解决了我的问题;

重大更改:删除 is24Hour、getTimezone、isAutoTimeZone 和 isAutoDateAndTime、getDeviceLocale、getDeviceCountry、getPreferredLocales

这是一项调查的结果。它删除了 react-native-community 模块中的 API 重复

相关公关https ://github.com/react-native-community/react-native-localize/pull/65

采用yarn add

https://github.com/mikehardy/react-native-localize.git#e062f0d2dc3171dc18fdb7b7139d347ad03933dc维护 isAutoTimeZone + isAutoDateAndTime 直到合并

于 2020-05-05T10:49:48.763 回答
1

接受的答案对我不起作用,可能是由于https://github.com/zoontek/react-native-localize/issues/81

但是,Expo它的生态系统中有一些东西,效果很好:

  1. expo install expo-localization
  2. import * as Localization from 'expo-localization';
  3. console.log(Localization.region);

编辑:此处的文档https://docs.expo.io/versions/latest/sdk/localization/#localizationregion

于 2021-07-04T14:06:35.543 回答
0

看起来这是 React Native 中的一个错误。请检查他们的故障排除部分

以下是他们的建议:

似乎是由 react-native 链接引起的错误。您可以在 Xcode -> [Your iOS build target] -> Build Phrases -> Link Binary with Libraries 中手动删除 libRNDeviceInfo-tvOS.a。

于 2019-09-26T10:00:06.453 回答