文章目录
- 问题描述
- 错误源码
- 问题分析
- 解决方法
- 修改后的代码
问题描述
今天有个同事调试flutter程序时报错,问我怎么解决,程序运行时报如下错误:
type ‘Future’ is not a subtype of type ‘int’ in type cast
错误源码
int order = DatabaseHelper.dbhelper.getTaskGroupRelationOrder() as int;TaskGroupRelation relation = TaskGroupRelation(id:0,taskId:snapshot.data?[index].id,groupId:widget.groupId,taskOrder:order,);DatabaseHelper.dbhelper.insertTaskGroupRelationData(relation);if (context.mounted) Navigator.of(context).pop();
问题分析
类型“Future<int>”不是类型强制转换中类型“int”的子类型。这里不能强制转换,要拿到DatabaseHelper.dbhelper.getTaskGroupRelationOrde()返回结果可以使用DatabaseHelper.dbhelper.getTaskGroupRelationOrder().then((value) =>{})
解决方法
使用DatabaseHelper.dbhelper.getTaskGroupRelationOrder().then((value) =>{})
修改后的代码
TaskGroupRelation relation;DatabaseHelper.dbhelper.getTaskGroupRelationOrder().then((value) =>{relation = TaskGroupRelation(id:0,taskId:snapshot.data?[index].id,groupId:widget.groupId,taskOrder:value,),DatabaseHelper.dbhelper.insertTaskGroupRelationData(relation),if (context.mounted) Navigator.of(context).pop(),});
结束语 Flutter是一个由Google开发的开源UI工具包,它可以让您在不同平台上创建高质量、美观的应用程序,而无需编写大量平台特定的代码。我将学习和深入研究Flutter的方方面面。从基础知识到高级技巧,从UI设计到性能优化,欢饮关注一起讨论学习,共同进入Flutter的精彩世界!