[英]I am getting a error in flutter that method "+" was called on null
目前我正在使用名為 Personal Expenses 的應用程序在 Udemy 上玩一門關於顫振的課程
和
我在顫振中收到一個錯誤,即在 null 上調用了方法“+”
錯誤信息 :-
The following NoSuchMethodError was thrown building Chart(dirty):
The method '+' was called on null.
Receiver: null
我的代碼:-
import 'package:personal_expenses/models/transaction.dart';
import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
class Chart extends StatelessWidget {
final List<Transaction> recentTransaction;
Chart(this.recentTransaction);
List<Map<String, Object>> get groupedTransactionValues {
return List.generate(7, (index) {
final weekDay = DateTime.now().subtract(
Duration(days: index),
);
double totalSum ;
for (var i = 0; i < recentTransaction.length; i++) {
if (recentTransaction[i].date.day == weekDay.day &&
recentTransaction[i].date.month == weekDay.month &&
recentTransaction[i].date.year == weekDay.year) {
totalSum += recentTransaction[i].amount;
}
}
return {
'day': DateFormat.E().format(weekDay).substring(0, 1),
'amount': totalSum
};
});
}
@override
Widget build(BuildContext context) {
return Card(
elevation: 6,
margin: EdgeInsets.all(20.0),
child: Row(
children: groupedTransactionValues.map((data) {
return Text('${data['day']}: ${data['amount']}');
}).toList(),
),
);
}
}
我通過以下方式解決了:-
使 totalSum 的值 = 0
double totalSum = 0
您之所以收到該錯誤,是因為在聲明時您沒有為double
提供任何值,並且在 Dart 中,每個字段都是Object
類型,並且默認情況下其值為null
與 java 中 double 獲取0
作為默認值不同。
double totalSum; // default value is null
totalSum += 10; // error, because totalSum is null
解決方案:
double totalSum = 0; // assign some value
totalSum += 10; // works
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.