我努力寻找一种合适的解决方案,以使用Redux在React Native中使用onChangeText函数格式化TextInput中的数字输入。
我尝试使用函数.toFixed(2)
,但是问题是,一旦在函数中键入一个数字,它就会将下一个数字解释为第一个小数,然后将其四舍五入为0。这是因为我用Redux控制输入。键入一个数字后,它将立即保存到Redux状态,并且TextInput的值prop会连接到Redux状态的该部分。
示例:我输入5
,然后toFixed(2)
返回5.00
。现在,当我输入3
时,它将解释为5.03
,并且该函数将其舍入并再次返回5.00
。
我也尝试使用react-native-masked-text
,但是问题是由于React Native的实际TextInput中的一个错误,我产生了可怕的闪烁效果,无法摆脱它。 (https://github.com/benhurott/react-native-masked-text/issues/12)
理想的方法是输入一个数字,并在我按下第二个数字时将其作为第一个小数,小数点将向右移动一位。示例:我键入7
,TextInput应该显示0.07
,然后键入9
,并且TextInput应该显示0.79
。然后,我输入4
,TextInput应该显示7.94
等。
在美国,很多银行应用都将其作为标准做法。