如何使文本在 flutter 中与 Textfield 一起工作

How to make a text work reactive with a Textfield in flutter

我有这段代码,里面有一个文本和一个文本字段,我怎样才能让文本以反应方式与文本字段一起填写。

此尝试未得到结果。

class _MyHomePageState extends State<MyHomePage> {
  TextEditingController controller = TextEditingController();
  String aMostrar = "";
  @override
  Widget build(BuildContext context) {
    controller.text = "";
    controller.addListener(() {
      aMostrar = controller.text;
    });
    return Scaffold(
      appBar: AppBar(
        title: Text("TextField Example"),
      ),
      body: Container(
        margin: EdgeInsets.all(20.0),
        child: Center(
            child: Column(
          children: <Widget>[
            TextField(
              controller: controller,
            ),
            Text(aMostrar),
          ],
        )),
      ),
    );
  }
}

您不需要从控制器获取文本值,因为 TextField 已经提供了 onChanged

并且在 onChange 内您需要调用 setState.

如下所示:

TextField(
  onChanged: (value) {
    setState(() {
      aMostrar = value;
    });
  },
),

如果您正在使用 TextFormField,那么您需要在 controller 的侦听器中调用 setState

如下所示:

controller.addListener(() {
  setState(() {
    aMostrar = controller.text;
  });
});