【问题标题】:how to setState() using Flutter TextFormField如何使用 Flutter TextFormField 设置状态()
【发布时间】:2021-06-25 13:51:45
【问题描述】:
validator: (value) {
                                if (value.isEmpty) {
                                  _casing.depth = 0;
                                } else if (double.tryParse(value) != null) {
                                  // setState(() {
                                  _casing.depth = double.tryParse(value);
                                  // });
                                } else {
                                  _casing.depth = 0;
                                  return kTextFieldError;
                                }
                                return null;
                              },

这会返回一个错误,指出当前执行此操作时无法设置状态。 我需要的是作为用户输入(或通过单击确定或点击自动隐藏键盘的任何位置来完成),我想使用输入值来计算父小部件中的数字

【问题讨论】:

  • 在这种情况下,您可以传递一个回调函数来完成您的工作。另一方面,您可以观察 textformfield 的焦点状态并完成您的任务。
  • 如何观察焦点?

标签: flutter dart input layout flutter-layout


【解决方案1】:

你可以使用TextFormFieldonChanged属性

onChanged:(value){
 if (value.isEmpty) {
_casing.depth = 0;
} else if (double.tryParse(value) != null) {
 // setState(() {
 _casing.depth = double.tryParse(value);
 // });
 } else {
  _casing.depth = 0;
   return kTextFieldError;
 }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-05
    相关资源
    最近更新 更多