Flutter 参数类型 'List<dynamic>' 不能分配给参数类型 'List<Widget>'
Posted
技术标签:
【中文标题】Flutter 参数类型 \'List<dynamic>\' 不能分配给参数类型 \'List<Widget>\'【英文标题】:Flutter The argument type 'List<dynamic>' can't be assigned to the parameter type 'List<Widget>'Flutter 参数类型 'List<dynamic>' 不能分配给参数类型 'List<Widget>' 【发布时间】:2022-01-03 03:18:26 【问题描述】:这是我得到的错误,我不知道如何解决它
不能将参数类型“List”分配给参数类型“List”。
先谢谢大家帮忙解决
解决方案: 让我瞎了眼找到了解决方案:type 'List<dynamic>' is not a subtype of type 'List<Widget>'
StreamBuilder<List<ScanResult>>(
stream: FlutterBlue.instance.scanResults,
initialData: [],
builder: (c, snapshot) => ListView(
shrinkWrap: true,
children: snapshot.data!
.map(
(r) => ScanResultTile(
result: r,
onTap: () => Navigator.of(context)
.push(MaterialPageRoute(builder: (context)
r.device.connect();
return DeviceScreen(device: r.device);
)),
),
)
.toList(),
),),
【问题讨论】:
您能否分享完整代码以获取更多详细信息,例如返回类型“FlutterBlue.instance.scanResults”是什么 这能回答你的问题吗? type 'List<dynamic>' is not a subtype of type 'List<Widget>' 【参考方案1】:Streambuilder 返回一个动态列表,所以不是返回 ListView,而是返回 ListView.builder:
StreamBuilder<List<ScanResult>>(
stream: FlutterBlue.instance.scanResults,
initialData: [],
builder: (c, snapshot) => ListView( <------- change this with ListView.builder
shrinkWrap: true,
children: snapshot.data!
.map(
(r) => ScanResultTile(
result: r,
onTap: () => Navigator.of(context)
.push(MaterialPageRoute(builder: (context)
r.device.connect();
return DeviceScreen(device: r.device);
)),
),
)
.toList(),
),),
【讨论】:
以上是关于Flutter 参数类型 'List<dynamic>' 不能分配给参数类型 'List<Widget>'的主要内容,如果未能解决你的问题,请参考以下文章
类型 'List<dynamic>' 不是类型 'FutureOr<List<RideData>>' 的子类型,Flutter
Flutter/Dart - “List<dynamic>”不是“List<Product>”类型的子类型
Flutter/Firestore - 类型 'List<dynamic>' 不是类型 'Widget' 的子类型
Flutter - 'List<dynamic>' 不是类型的子类型
Flutter StreamProvider 'List<dynamic>' 不是类型转换中类型 'List<??>' 的子类型