当子组件是有状态组件
声明GlobalKey
如 声明
GlobalKey formKey = GlobalKey<FormState>();
Form(key: formKey,
autovalidateMode: AutovalidateMode.always,
child: Column(
children: <Widget>[
TextFormField(
autofocus: true,
initialValue: "a",
validator: (v) {
return v!.trim().length > 0 ? null : "请输入内容";
},
),
],
),
),
FormState 是 有状态组件Form 的 State实现 。FormState不能是下划线的 不能设置为私有属性
调用 Form 组件内定义方法
(formKey.currentState as FormState).validate()
当子组件是有状态组件
如无状态组件A
import 'package:flutter/material.dart';
class A extends StatelessWidget {
const A({super.key});
fun() {
print("调用的方法")
}
@override
Widget build(BuildContext context) {
return Container();
}
}
声明
GlobalKey aKey = GlobalKey<A>();
使用
(aKey.currentState as A).fun()