首页 > 解决方案 > Flutter:TextFormField onchange 值到 Text 小部件

问题描述

我是新手,我尝试在输入文本字段时执行 onchange 值,该值正在更新 Text 小部件。

我尝试了两种方法,一种是来自 onchanged ,另一种是使用 TextEditingController,但都不起作用。

final txtController = TextEditingController();
String onchangeval = "";

TextFormField(
  onChanged: (value){
    onchangeval = value;
  },
  controller: txtController
),
Text("value_1 : " + onchangeval),
Text("value_2 : " + txtController.text),

注意:当前使用扩展 HookWidget

标签: flutterdart

解决方案


你需要调用setState() 来告诉框架小部件的状态已经改变并且小部件应该被重绘。

class MyWidget extends StatefulWidget {
  @override
  _MyWidgetState createState() => _MyWidgetState();
}

class _MyWidgetState extends State<MyWidget> {
  final txtController = TextEditingController();
  String onchangeval = "";

  @override
  Widget build(BuildContext context) {
    return Column(
      mainAxisSize: MainAxisSize.min,
      children: [
        TextFormField(
            onChanged: (value) {
              setState(() {
                onchangeval = value;
              });
            },
            controller: txtController),
        Text("value_1 : " + onchangeval),
        Text("value_2 : " + txtController.text),
      ],
    );
  }
}

推荐阅读