Flutter Define Map 包含Key Names的多维结构
Flutter Define Map Multi-dimensional structure including Key Names
我正在尝试创建自定义导航小部件。这本质上涉及一个 Map,其中键是路线。 One's key is defined instead of the value simply being the page 我想要一些额外的数据,而不仅仅是页面小部件。
对于我想要要求的每个地图值:
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);
我正在尝试创建自定义导航小部件。这本质上涉及一个 Map,其中键是路线。 One's key is defined instead of the value simply being the page 我想要一些额外的数据,而不仅仅是页面小部件。
对于我想要要求的每个地图值:
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);