我在哪里把我的代码预填充使用flutter_form_builder构建的表单



我正在使用flutter上的flutter_form_builder构建表单,我需要在第二次打开表单时从本地数据库预填充表单。当我在initState中调用它时,它无法预填充表单小部件。

setState(() {
_formKey.currentState!.patchValue({
'subCity': result?.subCity,
'landmark': result?.landmark,
});
});

我看过flutter_form_builder的文档,没有提到我需要使用它来执行此操作的生命周期。它只展示了如何处理提交表单。

如果有人遇到过这种情况,请让我知道你是如何解决的。谢谢。

您需要为每个字段分配一个texttedingcontroller,然后在initState上初始化每个字段,下面是一个示例:

class _MyHomePageState extends State<MyHomePage> {
TextEditingController _formController = TextEditingController();
@override

void initState() {
_formController.value = TextEditingValue(text: 'initializedValue');
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.red,
body: Center(
child: FormBuilder(
child: FormBuilderTextField(
name: 'the text field',
controller: _formController,
),
),
),
);
}
}

最新更新