首页 > 解决方案 > 来自 Future (Firebase) 的 TextFormField (Flutter) 中的初始值

问题描述

伙计们。

我正在尝试TextFormField从来自 Firebase Firestore 的字符串中设置 a 的初始值,因此它是一个未来。但我就是不能让它工作!

我已经为我的问题编写了一个简化的代码,可以在 dartPad 上找到:

https://dartpad.dartlang.org/0649b56c10041ca7e6ab4440e7564dea

我应该如何正确地做到这一点?我应该使用 aFuture.then()而不是FutureBuilder?我应该使用控制器而不是设置初始值吗?我尝试的任何形式,它最终都不起作用......

标签: firebaseflutterfuture

解决方案


在任务完成之前,文本字段将为空,但这可以正常工作:

final _textEditingController = TextEditingController();

@override
  void initState() {
    super.initState();
    asyncTask()
  }

void asyncTask() async{
   //do work
   setState(() {
        _textEditingController.text = workResult;
      });
}
//in build method
TextFormField(
   controller: _emailtextEditingController,
   .
   .
   .
),

推荐阅读