Во флаттере TextFormField я не могу очистить значение при использовании double.parse - PullRequest
0 голосов
/ 19 июня 2020
• 1000 сейчас 75 долларов.

Все работает. Моя проблема в том, что если я стираю все в TextFormField и нажимаю «Отправить», баланс в 100 долларов теперь составляет 98 долларов. Удалить ключ.

Когда я распечатываю значение, нажимаю клавишу удаления и смотрю на консоль, это выглядит так ...

25.00

25.0

25.

25

2

Независимо от того, сколько раз я нажимал удаление, 2 не стирается.

Я сузил его to double.parse - моя проблема. Вот код:

   onChanged: (val){balance = debtBalance-double.parse(val);
   print(val);},```

1 Ответ

0 голосов
/ 19 июня 2020

Я думаю, это потому, что метод синтаксического анализа не работает, если ему предоставлено пустое или нулевое значение. В любом случае нет смысла анализировать пустую строку, поэтому просто используйте в этих случаях значение по умолчанию 0.

balance = debtBalance - ((val ?? '').isEmpty ? 0 : double.parse(val));

Этот фрагмент кода проверяет, является ли новое текстовое значение пустым, и если да, он вычитает 0 вместо синтаксического анализа.

...