【发布时间】:2025-12-17 12:20:04
【问题描述】:
我正在创建一个应该显示团队列表的颤振应用程序,每个团队都是一个包含类似项目的对象
name: 字符串
players: 数组
name: 字符串
看起来像这样
List teams = [
{
'name': 'Team one',
'players': [
{
'name': 'Team one player one',
},
{
'name': 'Team one player two',
},
{
'name': 'Team one player three',
},
]
},
{
'name': 'Team two',
'players': [
{
'name': 'Team two player one',
},
{
'name': 'Team two player one',
},
{
'name': 'Team two player three',
},
]
},
];
此外,在我的代码中,我正在遍历所有 teams 和 ListView,就像这样
Widget build(BuildContext context) {
return Scaffold(
body: Container(
child: renderTeams(teams),
),
);
}
而renderTeams() 看起来像这样:
Widget renderTeams(List teams) {
return ListView.builder(
itemCount: teams.length,
itemBuilder: (context, index) {
return Padding(
padding: EdgeInsets.all(10.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
mainAxisSize: MainAxisSize.min,
children: [
Text(teams[index]['name']),
Row(
children: <Widget>[
Flexible(
child: PlayerCard(
player: teams[index]['players'][0],
),
),
Flexible(
child: PlayerCard(
player: teams[index]['players'][1],
),
),
Flexible(
child: PlayerCard(
player: teams[index]['players'][2],
),
),
],
)
],
),
);
},
);
}
这很好,一切都会相应地呈现。
但是,我想代替单独添加每个玩家,遍历每个团队的玩家,所以我的renderTeams() 看起来像这样:
Widget renderTeams(List teams) {
return ListView.builder(
itemCount: teams.length,
itemBuilder: (context, index) {
return Padding(
padding: EdgeInsets.all(10.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
mainAxisSize: MainAxisSize.min,
children: [
Text(teams[index]['name']),
renderPlayers(teams[index]['players'])
],
),
);
},
);
}
renderPlayers() 看起来像这样:
renderPlayers(players) {
return Row(children: players.map((player) => {
Flexible(
child: PlayerCard(
player: player,
),
)
}).toList());
}
这是我的麻烦开始的地方,因为我遇到了类似的错误
type 'List<dynamic>' is not a subtype of type 'List<Widget>'
我已经四处搜索,但其他响应试图修复类型,但这导致我陷入尝试修复我不理解的错误的无限循环。
有人有任何提示吗?提前致谢
【问题讨论】: