- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我收到以下错误:
The following _TypeError was thrown building FutureBuilder(dirty, state: _FutureBuilderState#0e8bb):type '_InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'Comparable'
class _ResultScreenState extends State<ResultScreen> {
List showData;
var sortedData;
bool byName = false;
bool byRating = false;
@override
void initState() {
// TODO: implement initState
super.initState();
}
@override
Widget build(BuildContext context) {
return Stack(
children: <Widget>[
ConstrainedBox(
constraints: const BoxConstraints.expand(),
child: Image(
fit: BoxFit.cover,
image: AssetImage('assets/scuba.jpg'),
),
),
Scaffold(
appBar: AppBar(
title: Text("Scuba Dive"),
actions: <Widget>[
Padding(
padding: const EdgeInsets.all(8.0),
child: Center(child: Text("Sort By")),
),
PopupMenuButton<String>(
icon: Icon(
Icons.sort,
size: 32,
),
onSelected: choiceAction,
itemBuilder: (BuildContext context) {
return Constants.choices.map((String choice) {
return PopupMenuItem<String>(
value: choice,
child: Text(choice),
);
}).toList();
},
)
],
),
body: Container(
constraints: BoxConstraints.expand(),
decoration: BoxDecoration(
image: DecorationImage(
image: AssetImage('assets/scuba.jpg'),
colorFilter:
ColorFilter.mode(Colors.black26, BlendMode.darken),
fit: BoxFit.cover)),
child: FutureBuilder(
builder: (context, snapshot) {
showData = json.decode(snapshot.data.toString());
if (byName) {
showData.sort();
}
return ListView.builder(
itemBuilder: (BuildContext context, int index) {
return Container(
padding: EdgeInsets.all(8),
margin: EdgeInsets.all(12),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(8),
color: Colors.white70,
),
child: Column(
children: <Widget>[
Row(
children: <Widget>[
ConstrainedBox(
constraints: BoxConstraints(
maxWidth: 150,
maxHeight: 80,
),
child: Image(
image: AssetImage(showData[index]["image"]),
),
),
Flexible(
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: <Widget>[
Text(
showData[index]["name"].toString(),
style: TextStyle(
fontSize: 18,
fontWeight: FontWeight.bold),
),
Text("Rating : " +
showData[index]["rating"]),
],
),
),
),
],
),
],
),
);
},
itemCount: showData == null ? 0 : showData.length,
);
},
future:
DefaultAssetBundle.of(context).loadString("assets/data.json"),
),
),
)
],
);
}
void choiceAction(String choice) {
if (choice == Constants.FirstItem) {
setState(() {
byName = true;
});
} else if (choice == Constants.SecondItem) {
print("Second");
}
}
}
可能是什么原因,我该如何解决?
最佳答案
错误来自此行:
showData.sort();
因为
json.decode
不返回
Comparable
。您应该考虑给
showData
输入类型(可以是局部变量):
List<Data> showData = List<Data>.from(json.decode(snapshot.data.toString()));
关于sorting - Flutter类型 '_InternalLinkedHashMap<String, dynamic>'不是 'Comparable<dynamic>'类型的子类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63339752/
在创建两个类来创建这个 json 结构之后: { "data": [ { "staff_id": "1111", "class_id": "222222",
有时,在 Dart 中遍历复杂的 json 文件时,如果我们能告诉我们的编辑器预期的结构是什么,以便我们可以充分利用编辑器的智能代码完成功能,那就太好了。 作为一个玩具示例,请考虑脚本 writer.
在存储到本地数据库之前将json字符串转换为对象的正确方法是什么? 这是i['created_by_user']的输出: {id: 3, name: A} 我试图将其转换为CreatedBy对象 C
我已将Cloud Firestore设置为数据库,并正在使用 map 检索文档,这是快照: 当我尝试使用get()检索文档时,我得到了DocumentSnapshot,然后将其转换为Map,其中包括许
Sthg 让我发疯,我尝试在卡片中显示 json 产品,但它不起作用。到目前为止,这是我尝试过的: 产品类别: class Product { final String id; Produ
我正在调用一个 post API,我必须在其中发送 FormData 但在收到响应后,当我尝试解析该响应时,我遇到了异常。 static Future versionApiRequest(String
Dart / Flutter的新功能。我创建了一个gridview,然后在网格中点击一个项目后,我想将JSON数据传递到下一页。但是,我收到一个错误,我认为这与无法正确进行类型转换有关。我希望下一页显
尝试解析JSON并将其显示在文本中而不是listview时出现错误。 以下是我的JSON结构。 { "status": "success", "data": { "id
我对Flutter很陌生,想呈现一个ListView。但是我得到一个错误。 我有3个模型类: 主题,主题和内容。 这是模型文件topic.dart: import './content.dart';
抱歉,我现在正在编程中,但是我正在学习中,请帮助我。我被困在这个问题上。这是我的第一个应用程序,在likke帮助下需要完成所有工作。 我收到此错误:类型'_InternalLinkedHashMap'
我正在尝试使用网络调用实现一个简单的新闻提要应用程序,其中屏幕将在 ListView 中显示最新的故事。 使用当前代码,我从 API 获得了响应(因为我在日志中看到了整个响应主体),但似乎无法在 UI
这是我的问题。在屏幕中,我使用的是 Navigator.pushnamed()...带有参数以将信息发送到具有详细 View 的屏幕。它工作正常!这是代码:Navigator.pushNamed(co
嗨,我是 Flutter 的新手,遇到了问题。 我想将从 Firestore 获取的数据添加到 List 类型的变量中,但出现错误。我花了几个小时来解决这个问题,但效果不佳。 有人知道我是如何得到这个
我收到以下错误: The following _TypeError was thrown building FutureBuilder(dirty, state: _FutureBuilderStat
这是我的错误行: 这是我的代码: 最佳答案 final jobs= json.decode(response.body)['name_database_table']; 关于mobile - NoSu
点击登录按钮后出现错误->未处理的异常:类型“_InternalLinkedHashMap”不是类型“String”的子类型 } 捕获(e){扔 e;//这里}请帮助我,我不明白如何解决 未处理的异常
我正在尝试解析 json,将其打印到控制台,然后放入 ListView.builder 并收到此错误:type '_InternalLinkedHashMap' is not a subtype of
背景 我正在开发一个可帮助小学老师的应用程序。 该应用程序允许用户从字母表中选择字母,当他们继续进入下一个屏幕时,他们选择的字母应显示为可翻转卡片。一侧有字母,另一侧有图像。 这些卡应占据整个屏幕,并
这是回应 { "overview": "A ticking-time-bomb insomniac and a slippery soap salesman channel primal male a
我有一个JSON如下 { "status": 1, "msg": "Success", "data": { "lastIndex": 50, "
我是一名优秀的程序员,十分优秀!