【问题标题】:React-native - TextInput decimal-pad showing comma instead of a dot on iOSReact-native - TextInput 十进制键盘在 iOS 上显示逗号而不是点
【发布时间】:2020-08-14 22:33:03
【问题描述】:

某些 iOS 设备似乎在小数点上显示 ,(逗号)而不是 .。我相信这与键盘语言/语言环境有关。有没有办法可以强制decimal-pad 显示. 而不管键盘语言/区域设置如何?

<TextInput
    rejectResponderTermination={false}
    style={[
        {
            fontSize: entryValueFontSize,
            height: height,
        },
        calculatorStyles.inputsShared,
        calculatorStyles.amountInput,
        theme.inputsShared,
    ]}
    autoCapitalize={'none'}
    placeholder={entryValueLabel}
    placeholderTextColor={theme.placeholderTextColor}
    keyboardType={'decimal-pad'}
    returnKeyType={'done'}
    defaultValue={''}
    value={isNaN(this.state.entryValue) ? '' : this.state.entryValue}
    onChangeText={(entryValue) => {
        this.onEntryValueChange(entryValue);
    }}
/>

问题:

期望的输出:

【问题讨论】:

    标签: react-native react-native-textinput


    【解决方案1】:

    无法强制键盘使用逗号。它基于地区,例如捷克有逗号。我创建的解决方案是在输入逗号后用点替换小数点的逗号

    <TextInput
      onChangeText={(entryValue) => {
        // I am passing keyboardType as prop
        if (keyboardType === 'decimal-pad') {
          this.onEntryValueChange(entryValue.replace(',', '.'));
        } else {
          this.onEntryValueChange(entryValue);
        }
      }}
    />
    

    【讨论】:

    • 是的,这就是我正在做的,但是在处理数字时这很烦人。我将最终实现一个可视键盘。
    • IMO- 发生这种情况是因为手机设置为欧盟位置。人们使用(逗号)而不是(点)例如:1.234,56(欧盟风格)而其余使用 1,234.56
    • @AbhishekEkaanth 没有理由猜测。您可以轻松地在逗号“,”或点“。”中找到此信息。用作小数分隔符en.wikipedia.org/wiki/Decimal_separator#Usage_worldwide
    猜你喜欢
    • 2019-09-15
    • 1970-01-01
    • 1970-01-01
    • 2020-04-25
    • 2020-10-23
    • 1970-01-01
    • 2020-05-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多