这是我的 chart.dart 文件
import 'package:flutter/material.dart';
import 'package:udemy_expenses_app/widgets/chart_bar.dart';
import '../models/tanscations.dart';
import 'package:intl/intl.dart';
import './chart_bar.dart';
class Chart extends StatelessWidget {
final List<Transaction> recentTransactions;
Chart(this.recentTransactions);
List<Map<String, Object>> get groupedTransactionValues {
return List.generate(7, (index) {
final weekDay = DateTime.now().subtract(
Duration(
days: index,
),
);
double 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 += recentTransactions[i].amount;
}
}
return {
'day': DateFormat.E().format(weekDay).substring(0, 1),
'amount': totalSum,
};
});
Run Code Online (Sandbox Code Playgroud)
}
double get totalSpending {
return groupedTransactionValues.fold(0.0, (sum, item) {
return sum + item['amount'];
Run Code Online (Sandbox Code Playgroud)
错误:“对象?”类型的值 不能分配给“num”类型的变量。
});
Run Code Online (Sandbox Code Playgroud)
}
@override
Widget build(BuildContext context) {
return Card(
elevation: 6,
margin: EdgeInsets.all(20),
child: Row(
children: groupedTransactionValues.map((data) {
return ChartBar(
data['day'],
Run Code Online (Sandbox Code Playgroud)
错误:参数类型“对象?” 不能分配给参数类型“字符串”。
data['amount'],
Run Code Online (Sandbox Code Playgroud)
错误:参数类型“对象?” 不能分配给参数类型“字符串”。
(data['amount'] as double) / totalSpending,
);
}).toList()));
Run Code Online (Sandbox Code Playgroud)
我不知道我哪里出错了
该方法groupedTransactionValues正在返回 的地图Object。相反,返回一个dynamic由运行时确定的类型的映射。更改行:
List<Map<String, Object>> get groupedTransactionValues {
Run Code Online (Sandbox Code Playgroud)
到:
List<Map<String, dynamic>> get groupedTransactionValues {
Run Code Online (Sandbox Code Playgroud)
小智 5
将对象更改为动态:
(List<Map<String, Object>> get groupedTransactionValues { )
Run Code Online (Sandbox Code Playgroud)
如果错误没有解决,请尝试添加:
data['day'] as String,
data['amount'] as double,
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2308 次 |
| 最近记录: |