flutter 父组件获取子组件的值
时间: 2024-01-07 21:22:39 浏览: 29
在Flutter中,父组件获取子组件的值可以通过使用GlobalKey来实现。下面是一个示例代码:
```dart
import 'package:flutter/material.dart';
class ChildWidget extends StatefulWidget {
@override
_ChildWidgetState createState() => _ChildWidgetState();
}
class _ChildWidgetState extends State<ChildWidget> {
String value = 'Hello';
@override
Widget build(BuildContext context) {
return Text(value);
}
}
class ParentWidget extends StatefulWidget {
@override
_ParentWidgetState createState() => _ParentWidgetState();
}
class _ParentWidgetState extends State<ParentWidget> {
GlobalKey<_ChildWidgetState> childKey = GlobalKey<_ChildWidgetState>();
void getChildValue() {
String childValue = childKey.currentState.value;
print('Child value: $childValue');
}
@
Widget build(BuildContext context) {
return Column(
children: [
ChildWidget(key: childKey),
RaisedButton(
child: Text('Get Child Value'),
onPressed: getChildValue,
),
],
);
}
}
void main() {
runApp(MaterialApp(
home: Scaffold(
body: ParentWidget(),
),
));
}
```
在上面的示例中,ParentWidget是父组件,ChildWidget是子组件。父组件通过使用GlobalKey来获取子组件的状态,并调用子组件的方法或访问子组件的属性。在getChildValue方法中,我们通过childKey.currentState来获取子组件的状态,并获取子组件的值。