Flutter 使用GlobalKey从另一个位置控制Form的状态

10 min read

在Flutter中,可以使用GlobalKey从另一个位置控制Form的状态。以下是实现此目的的步骤:

  1. 在StatefulWidget的build方法中创建一个GlobalKey的实例:
final _formKey = GlobalKey<FormState>();
  1. 在Form组件中使用该全局键:
Form(
  key: _formKey,
  //...
)
  1. 将该全局键作为参数传递给其他函数或组件:
someFunction(key: _formKey),
  1. 在其他位置使用该全局键控制Form的状态:
bool validate = _formKey.currentState.validate();
if (validate) {
  _formKey.currentState.save();
  //...
}

在上述代码中,_formKey.currentState可用于访问FormState对象,该对象允许访问表单中控件的状态、验证结果和保存的值。因此,它可以从另一个位置控制表单的状态。