【发布时间】:2021-11-23 17:07:24
【问题描述】:
我正在构建一个简单的应用程序,其中包含来自不同专业文件的大量嵌套小部件/类
文件列表:
main.dart -> 用于启动活动的菜单文件 “活动()”
group_widgets.dart -> 包含自定义小部件的文件 "自定义小部件()"
file_a.dart -> 使用自定义小部件的文件 在“Activity()”中
other.dart -> 其他需要管理在CustomWidget()中更改的数据的文件
在 main.dart 中:
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => const Activity(),
));
},
在 group_widgets.dart 中:
class CustomWidget extends StatefulWidget {
const CustomWidget({Key? key}) : super(key: key);
@override
State<CustomWidget> createState() => _CustomWidgetState();
}
class _CustomWidgetState extends State<CustomWidget> {
var _boolean = false;
bool switchBoolean(bool state) => !state;
@override
Widget build(BuildContext context) {
return ElevatedButton(
onPressed: () => {
setState(() {
_boolean = switchBoolean(_boolean);
})
},
child: Container(
color: _boolean == true ? Colors.green : Colors.red,
),
);
}
}
file_a.dart 内部
class Activity extends StatefulWidget {
const Activity({Key? key}) : super(key: key);
@override
State<Activity> createState() => _ActivityState();
}
class _ActivityState extends State<Activity> {
@override
Widget build(BuildContext context) {
bool boolean = true;
return Scaffold(
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: const [
CustomWidget(),
Text('Here where to show the variable from CustomWidget'
'and prove I can retrieve it')
],
),
),
);
}
}
在 other.dart 中
if ( booleanFromCustomWidget == true) {
Something ...
}
实现它的最佳做法是什么? 我在这里读了很多书,但似乎没有什么能很好地满足我的需要。
如果我的要求不像我认为的那么清楚,请发表评论))
【问题讨论】:
-
看看我的回答,如果我的假设是正确的,你几乎可以删除代码并写一个视图文本行来表达意思:)