gpt4 book ai didi

dart - Flutter dart 向 child 添加列表

转载 作者:IT王子 更新时间:2023-10-29 06:33:54 24 4
gpt4 key购买 nike

我是 dart 的新手,我只想使用 map (store.state.availablePage.map) 添加我的数据列表到 ListView 的子项,但我已经有一些项目了 ListView 。

这里是我想要的示例代码:

class MgDrawer extends StatelessWidget {
@override
Widget build(BuildContext context) {
return StoreBuilder<AppState>(
builder: (context, store) {
return Drawer(
child: ListView(
padding: EdgeInsets.zero,
children: <Widget>[
Text("Title"),
store.state.availablePage.map((value) {
return ListTile(
title: Text("Title"),
onTap: () {},
);
}).toList(),
],
),
);
},
);
}
}

请帮助我如何实现这一点?

更新:上面的代码没有编译。

更新 Dart Lang 版本 > 2.2.2,可以使用以下代码实现:

class MgDrawer extends StatelessWidget {
@override
Widget build(BuildContext context) {
return StoreBuilder<AppState>(
builder: (context, store) {
return Drawer(
child: ListView(
padding: EdgeInsets.zero,
children: <Widget>[
Text("Title"),
...store.state.availablePage.map((value) {
return ListTile(
title: Text("Title"),
onTap: () {},
);
}).toList(),
],
),
);
},
);
}
}

最佳答案

你的 ListView 有 Text(Widget) 和一个 Array of ListTile(Array of Widgets) 这意味着 ListView(children: [Widget, [Widget] ]).

但它应该是 ListView(children: [Widget1, Widget2, Widget3,...])。下面的代码可能有帮助

 class MgDrawer extends StatelessWidget {
@override
Widget build(BuildContext context) {
return StoreBuilder<AppState>(
builder: (context, store) {
List<Widget> list = store.state.availablePage.map((value) {
return ListTile(
title: Text("Title"),
onTap: () {},
);
}).toList();
list.insert(0, Text("Title"));
return Drawer(
child: ListView(
padding: EdgeInsets.zero,
children: list,
),
);
},
);
}
}

关于dart - Flutter dart 向 child 添加列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52157230/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com