flutter - Flutter 定义 Map 多维结构,包括 Key Names
问题描述
我正在尝试创建一个自定义导航小部件。这本质上涉及一个 Map ,其中关键是路线。一个键是定义的,而不是简单的值是我想要一些附加数据的页面,而不仅仅是一个页面小部件。
对于每个地图值,我想要一个:
String pageType;
Dynamic altColor;
Widget pageContent
我已经能够通过在地图中放置一个子地图来实现这一点,但这不允许我定义我想要的数据类型和键。
class UINav extends StatelessWidget {
UINav({required this.routes})
final Map<String, Map<String, dynamic>> routes;
...
基本上,每个地图元素都应该需要上述每个元素,而不是对任何数据开放。
解决方案
尝试这个:
class NavTarget {
NavTarget(
{required this.pageType,
required this.altColor,
required this.pageContent});
String pageType;
dynamic altColor;
Widget pageContent;
}
接着:
final Map<String, NavTarget> routes = {
'first': NavTarget(
pageType: 'pageType1',
altColor: 'altColor1',
pageContent: const Text('pageContent1')),
'second': NavTarget(
pageType: 'pageType2',
altColor: 'altColor2',
pageContent: const Text('pageContent2')),
};
print(routes['first']!.altColor);
推荐阅读
- java - 在 JAVA 中,如何将文本文件拆分为三个字符?
- excel - 如何用范围偏移替换选择?
- android - Firebase - 应用程序未写入实时数据库
- typescript - Sentry.io 使用 express 和 typescript 捕获状态 400
- android - 在 Flutter 中接收分享意图(接收 URL)
- python - 向内置模块添加属性需要什么?
- gensim - 了解 Gensim Doc2vec 排名
- python - 矩阵操作 - 为什么正常循环会产生不同的结果?
- javascript - Javascript:隐藏输入条码扫描器
- javascript - 拖动时如何复制div?