flutter - 参数类型“对象?” 不能分配给参数类型“num”
问题描述
我有 3 个关于无法将对象分配给参数的错误,包括 int、string 和 double 。我正在尝试获取数据以创建一个图表栏来显示和处理数据。它从另一个名为 Transaction 的小部件中获取。
import 'package:flutter/material.dart';
import 'package:personal_expenses_app/model/transaction.dart';
import 'package:intl/intl.dart';
import 'package:personal_expenses_app/widgets/chart_bar.dart';
class Chart extends StatelessWidget {
final List<Transaction> recentTransactions;
Chart(this.recentTransactions);
List<Map<String, Object>> get groupTransactionValues {
return List.generate(7, (index) {
final weekDay = DateTime.now().subtract(
Duration(days: index),
);
var totalsum = 0.0;
for (var i = 0; i < recentTransactions.length; i++) {
if (recentTransactions[i].date.day == weekDay.day &&
recentTransactions[i].date.month == weekDay.month &&
recentTransactions[i].date.year == weekDay.year) {
totalsum = totalsum + recentTransactions[i].amount;
}
}
// print(DateFormat.E().format(weekDay));
// print(totalsum);
return {
'day': DateFormat.E().format(weekDay).substring(0, 1),
'amount': totalsum
};
}).toList();
}
double get totalSpending {
return groupTransactionValues.fold(0.0, (sum, item) {
return sum + item['amount']; // error item['amount']
});
}
@override
Widget build(BuildContext context) {
return Card(
elevation: 6,
margin: EdgeInsets.all(20),
child: Row(
children: groupTransactionValues.map((data) {
return Chartbar(data['day'], data['amount'], //error data['day'],data['amount']
(data['amount'] as double) / totalSpending);
}).toList(),
),
);
}
}
解决方案
答案隐藏在您的代码中。将对象转换为双精度。
// replace data['amount'] with following
(data['amount'] as double)
推荐阅读
- android - 如何在 AWS 中创建符合 Hipaa 标准的 Android 应用程序开发?
- react-native - React Native - 带有hitSlop的内联可按下组件与文本内联
- javascript - 不使用 jQuery 将 JS 文件加载到 DOM 中
- iframe - 使用应用程序脚本在 IFRAME 中提供的电子表格中打开一个对话框会生成“docs.google.com 拒绝连接”。
- python - Django:使用 3 列渲染单选按钮,成本列必须根据选择的大小和数量而变化
- c++ - 为什么在 C++ 中使用私有复制构造函数与已删除的复制构造函数
- .htaccess - 拒绝直接访问具有重定向的目录
- powershell - SCCM 和 Powershell - 如何从 PackageID 获取应用程序的 LocalizedDisplayName?
- algorithm - 找到具有首选组的组和对象的最佳分配的算法
- ios - 冲突模式在 UIScrollView 内的 UICollectionView 中滚动