flutter 父组件操作子组件方法
时间: 2024-01-13 08:04:21 浏览: 35
在Flutter中,父组件可以通过引用子组件的key来操作子组件的方法。下面是一个示例:
```dart
import 'package:flutter/material.dart';
class ChildWidget extends StatefulWidget {
final GlobalKey<ChildWidgetState> childKey;
ChildWidget({Key key, this.childKey}) : super(key: key);
@override
ChildWidgetState createState() => ChildWidgetState();
}
class ChildWidgetState extends State<ChildWidget> {
void doSomething() {
// 子组件的方法
print("子组件的方法被调用");
}
@override
Widget build(BuildContext context) {
return Container();
}
}
class ParentWidget extends StatelessWidget {
final GlobalKey<ChildWidgetState> childKey = GlobalKey<ChildWidgetState>();
@override
Widget build(BuildContext context) {
return Column(
children: [
ChildWidget(childKey: childKey),
RaisedButton(
child: Text("调用子组件方法"),
onPressed: () {
childKey.currentState.doSomething();
},
),
],
);
}
}
void main() {
runApp(MaterialApp(
home: Scaffold(
body: ParentWidget(),
),
));
}
```
在上面的示例中,父组件`ParentWidget`通过`childKey`引用子组件`ChildWidget`的方法`doSomething()`。当点击按钮时,父组件调用子组件的方法并打印一条消息。