Reputation: 142
I am building an app through a course and while building the app I ran into a problem which I couldn't solve. And the problem also doesn't specify properly why it is there.
The problem I have is the No such method error. This is the main.dart file and the error was mostly in this file.
import 'package:flutter/material.dart';
import './widgets/transaction_list.dart';
import './widgets/new_transaction.dart';
import './widgets/chart.dart';
import './models/transaction.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: "Personal Expenses Tracker",
home: MyHomePage(),
theme: ThemeData(
primarySwatch: Colors.pink,
fontFamily: 'Quicksand',
),
);
}
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
final List<Transaction> _userTransactions = [
// Transaction(
// id: 't1', name: 'Monthly Rent', amount: 500, date: DateTime.now()),
// Transaction(
// id: 't2', name: 'Maid\'s salary', amount: 100, date: DateTime.now()),
];
List<Transaction> get _recentTrasactions {
return _userTransactions.where((tx) {
return tx.date.isAfter(
DateTime.now().subtract(
Duration(days: 7),
),
);
}).toList();
}
void _addNewTransaction(String txTitle, double txAmount) {
final newTx = Transaction(
id: DateTime.now().toString(),
name: txTitle,
amount: txAmount,
date: DateTime.now());
setState(() {
_userTransactions.add(newTx);
});
}
void _startAddNewTransaction(BuildContext ctx) {
showModalBottomSheet(
context: ctx,
builder: (_) {
return GestureDetector(
child: NewTransaction(_addNewTransaction),
onTap: () {},
behavior: HitTestBehavior.opaque,
);
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Personal Expense Tracker'),
actions: [
IconButton(
onPressed: () {
_startAddNewTransaction(context);
},
icon: Icon(Icons.add)),
],
),
body: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
Chart(this._recentTrasactions),
TransactionList(_userTransactions),
],
),
),
floatingActionButtonLocation: FloatingActionButtonLocation.centerFloat,
floatingActionButton: FloatingActionButton(
child: Icon(Icons.add),
onPressed: () {
_startAddNewTransaction(context);
},
),
);
}
}
The following error page was thrown
Performing hot restart...
Restarted application in 972ms.
I/flutter (12542): [{day: Fri, amount: null}, {day: Thu, amount: null}, {day: Wed, amount: null}, {day: Tue, amount: null}, {day: Mon, amount: null}, {day: Sun, amount: null}, {day: Sat, amount: null}]
W/IInputConnectionWrapper(12542): getSelectedText on inactive InputConnection
W/IInputConnectionWrapper(12542): getTextAfterCursor on inactive InputConnection
W/IInputConnectionWrapper(12542): beginBatchEdit on inactive InputConnection
W/IInputConnectionWrapper(12542): endBatchEdit on inactive InputConnection
W/IInputConnectionWrapper(12542): setComposingRegion on inactive InputConnection
══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
The following NoSuchMethodError was thrown building Chart(dirty):
The method '+' was called on null.
Receiver: null
Tried calling: +(25.0)
The relevant error-causing widget was:
Chart file:///D:/Flutter%20Repos/personal_expenses_tracker/lib/main.dart:91:13
When the exception was thrown, this was the stack:
#0 Object.noSuchMethod (dart:core-patch/object_patch.dart:54:5)
#1 Chart.groupedTransactions.<anonymous closure> (package:personal_expenses_tracker/widgets/chart.dart:21:20)
#2 new _GrowableList.generate (dart:core-patch/growable_array.dart:133:28)
#3 Chart.groupedTransactions (package:personal_expenses_tracker/widgets/chart.dart:12:17)
#4 Chart.build (package:personal_expenses_tracker/widgets/chart.dart:34:11)
#5 StatelessElement.build (package:flutter/src/widgets/framework.dart:4648:28)
#6 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4574:15)
#7 Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
#8 StatelessElement.update (package:flutter/src/widgets/framework.dart:4655:5)
#9 Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
#10 RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:5596:32)
#11 MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6243:17)
#12 Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
#13 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6090:14)
#14 Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
#15 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6090:14)
#16 Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
#17 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6090:14)
#18 Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
#19 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6090:14)
#20 Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
#21 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6090:14)
#22 Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
#23 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16)
#24 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4746:11)
#25 Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
#26 StatefulElement.update (package:flutter/src/widgets/framework.dart:4778:5)
#27 Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
#28 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6090:14)
#29 Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
#30 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16)
#31 Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
#32 ProxyElement.update (package:flutter/src/widgets/framework.dart:4922:5)
#33 Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
#34 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6090:14)
#35 Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
#36 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6090:14)
#37 Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
#38 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6090:14)
#39 Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
#40 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6090:14)
#41 Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
#42 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16)
#43 Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
#44 StatelessElement.update (package:flutter/src/widgets/framework.dart:4655:5)
#45 Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
#46 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16)
#47 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4746:11)
#48 Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
#49 StatefulElement.update (package:flutter/src/widgets/framework.dart:4778:5)
#50 Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
#51 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16)
#52 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4746:11)
#53 Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
#54 StatefulElement.update (package:flutter/src/widgets/framework.dart:4778:5)
#55 Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
#56 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16)
#57 Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
#58 ProxyElement.update (package:flutter/src/widgets/framework.dart:4922:5)
#59 Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
#60 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16)
#61 Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
#62 StatelessElement.update (package:flutter/src/widgets/framework.dart:4655:5)
#63 Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
#64 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16)
#65 Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
#66 StatelessElement.update (package:flutter/src/widgets/framework.dart:4655:5)
#67 Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
#68 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16)
#69 Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
#70 ProxyElement.update (package:flutter/src/widgets/framework.dart:4922:5)
#71 Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
#72 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16)
#73 Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
#74 ProxyElement.update (package:flutter/src/widgets/framework.dart:4922:5)
#75 Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
#76 RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:5596:32)
#77 MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6243:17)
#78 Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
#79 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16)
#80 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4746:11)
#81 Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
#82 StatefulElement.update (package:flutter/src/widgets/framework.dart:4778:5)
#83 Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
#84 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16)
#85 Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
#86 ProxyElement.update (package:flutter/src/widgets/framework.dart:4922:5)
#87 Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
#88 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16)
#89 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4746:11)
#90 Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
#91 StatefulElement.update (package:flutter/src/widgets/framework.dart:4778:5)
#92 Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
#93 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6090:14)
#94 Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
#95 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16)
#96 Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
#97 StatelessElement.update (package:flutter/src/widgets/framework.dart:4655:5)
#98 Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
#99 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6090:14)
#100 Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
#101 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16)
#102 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4746:11)
#103 Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
#104 StatefulElement.update (package:flutter/src/widgets/framework.dart:4778:5)
#105 Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
#106 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16)
#107 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4746:11)
#108 Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
#109 StatefulElement.update (package:flutter/src/widgets/framework.dart:4778:5)
#110 Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
#111 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16)
#112 Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
#113 ProxyElement.update (package:flutter/src/widgets/framework.dart:4922:5)
#114 Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
#115 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16)
#116 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4746:11)
#117 Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
#118 StatefulElement.update (package:flutter/src/widgets/framework.dart:4778:5)
#119 Element.updateChild (package:flutter/src/widgets/framework.dart:3350:15)
#120 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4599:16)
#121 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4746:11)
#122 Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
#123 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2582:33)
#124 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:875:21)
#125 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:328:5)
#126 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1144:15)
#127 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1082:9)
#128 SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:998:5)
#132 _invoke (dart:ui/hooks.dart:163:10)
#133 PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:259:5)
#134 _drawFrame (dart:ui/hooks.dart:126:31)
(elided 3 frames from dart:async)
════════════════════════════════════════════════════════════════════════════════════════════════════
Upvotes: 0
Views: 87
Reputation: 828
You are trying to sum with a null variable, I believe you already know that, but I will try to help you. I can see that before the error you are printing some data with amount: null
. This could be causing the error, try not to use null
, create a simple check with if
before summing or use 0
instead of null
.
{day: Fri, amount: null} <--- null
Tried calling: +(25.0) <--- error
Upvotes: 1