Я изо всех сил пытаюсь найти правильное решение для форматирования числового ввода в TextInput с использованием функции onChangeText в React Native с использованием Redux.
Я пытался использовать функцию .toFixed(2)
, но проблема в том, что как толькопоскольку в функцию введена одна цифра, она интерпретирует следующую цифру как первую десятичную и округляет ее обратно до 0. Это потому, что я управляю вводом с помощью Redux.Как только набирается одна цифра, она сохраняется в состоянии Redux, и значение prop TextInput подключается к этой части состояния Redux.
Пример: я набираю 5
, затем toFixed(2)
возвращает 5.00
.Когда я сейчас набираю 3
, он интерпретируется как 5.03
, а функция округляет его и возвращает 5.00
.
Я также пытался использовать react-native-masked-text
, но проблема в том, чтоиз-за ошибки в реальном TextInput из React Native у меня ужасный мерцающий эффект, и я не могу от него избавиться.(https://github.com/benhurott/react-native-masked-text/issues/12)
Идеальным способом было бы ввести одну цифру и иметь ее в качестве первой десятичной дроби, когда я нажимаю следующую цифру, десятичная точка сдвигает одну вправо. Пример: я печатаю 7
, TextInput должен показывать 0.07
, затем я набираю 9
, а TextInput должен показывать 0.79
. Затем я набираю 4
, и TextInput должен показывать 7.94
и т. Д.
Многобанковских приложений в США делают это в качестве стандартной практики.