[英]Access child widget's variable in parent widget (Flutter with Dart)
[英]Access const child widget variable from parent widget in Flutter
我想訪問父窗口小部件中的子窗口小部件變量值,而子窗口小部件是一個 const 窗口小部件,它不允許我將 GlobalKey 用於 const 子窗口小部件。
我的問題是如何在沒有 GlobalKey 的情況下訪問子窗口小部件。 這是我的代碼片段:
class ParentWidget extends StatefulWidget { @override State<StatefulWidget> createState() { // TODO: implement createState return ParentWidgetState(); } } class ParentWidgetState extends State<ParentWidget> { @override Widget build(BuildContext context) { return Container( child: const LeftSidePanel(),); } } class LeftSidePanel extends StatefulWidget { @override State<StatefulWidget> createState() { // TODO: implement createState return LeftPanelWidgetState(); } const LeftSidePanel( ); } class LeftSidePanelState extends State<LeftSidePanel> { }
請有人回答我的問題。 謝謝
在這個例子中,沒有一個小部件必須是有狀態的(盡量使用盡可能少的有狀態小部件)
import 'package:flutter/material.dart';
class ParentWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
child: ChildWidget(
getWidgetTextCallback: (someParameter) {
print(someParameter);
// here you can have the value from the Child widget use it wisely
},
),
);
}
}
class ChildWidget extends StatelessWidget {
final widgetText = 'widgetText';
final Function(String) getWidgetTextCallback;
const ChildWidget({required this.getWidgetTextCallback});
@override
Widget build(BuildContext context) {
return Column(
children: [
Text(widgetText),
ElevatedButton(
onPressed:
getWidgetTextCallback(widgetText),
child: Text(widgetText),
)
],
);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.