我正在使用.toLocaleString()react-native来获取我的数字输出.所有关于IOS的工作但似乎不适用于Android.这是正常的还是?我需要使用小数函数吗?
Tay*_*son 38
与其使用 polyfill 或外部依赖项,不如更改您的 android 应用程序构建的 JSC。对于较新版本的react-native添加或覆盖以下行app/build.gradle
def jscFlavor = 'org.webkit:android-jsc-intl:+'
Run Code Online (Sandbox Code Playgroud)
Tam*_*bia 12
您可以使用
number.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")
Run Code Online (Sandbox Code Playgroud)
Dan*_*ash 11
这是用于在 Android 中运行 react native 的 Javascript 核心的问题,而不是 react native 本身的问题。为了克服这个问题,您必须将最新的 javascript 核心集成到您的 android 构建中或将 react native 升级到 0.59。
详细信息记录在JSC Android Buildscripts 存储库中。
现在,对于想要在不需要集成整个 javascript 核心的情况下进行语言环境字符串格式化的人来说,Javascript 具有国际化 API,可让您将数字格式化为语言敏感格式。MDN提供的文档
此 API 在 android 中不可用,需要使用Intl进行 polyfill
在您的项目根目录中,安装 Intl 库
yarn add intl
Run Code Online (Sandbox Code Playgroud)
然后在您项目的索引文件 (index.js) 中,在文件顶部添加以下代码:
if(Platform.OS === 'android') { // only android needs polyfill
require('intl'); // import intl object
require('intl/locale-data/jsonp/en-IN'); // load the required locale details
}
Run Code Online (Sandbox Code Playgroud)
完成上述两个步骤后,您现在可以使用
new Intl.NumberFormat('en-IN', { style: 'currency', currency: 'INR' }).format(10000000);
Run Code Online (Sandbox Code Playgroud)
如果您需要为另一个区域设置代码格式化数字,所有区域设置代码详细信息都可以在intl/locale-data/jsonp/目录下找到。只需在 index.js 文件中添加您需要的内容即可。
在较新版本的 RN 上,>0.62您可以更改 JSC (JavaScriptCore) 构建变体以支持/包含ICU i18n库和允许使用的必要数据,例如Date.toLocaleString和String.localeCompare
替换android/app/build.gradle文件中的这一行
def jscFlavor = 'org.webkit:android-jsc:+'
Run Code Online (Sandbox Code Playgroud)
用这条线
def jscFlavor = 'org.webkit:android-jsc-intl:+'
Run Code Online (Sandbox Code Playgroud)
清洁构建和 react-native run android
此变体每个架构比默认值大约 6MiB。因此,如果使用每个 APK 架构构建,预计您的 APK 大小会增加约 4MB,如果def enableSeparateBuildPerCPUArchitecture = true禁用每个架构的单独构建,则 APK 会更大
这样做的原因是 react-native 使用的 JavaScriptCore 版本非常旧。iOS 嵌入了自己的版本,这就是它在那里运行良好的原因。
问题仍然存在(一些关于它前进方向的阅读https://github.com/facebook/react-native/issues/19737)
来自 Airbnb 开发人员的更多信息 https://medium.com/airbnb-engineering/react-native-at-airbnb-the-technology-dafd0b43838(搜索“JavaScriptCore 不一致”)
| 归档时间: |
|
| 查看次数: |
4393 次 |
| 最近记录: |