【问题标题】:How do I fix this NoSuchMethodError inFlutter?如何在 Flutter 中修复此 NoSuchMethodError?
【发布时间】:2020-09-20 20:42:45
【问题描述】:

我正在学习在线课程,但我的代码会引发错误,而讲师的代码不会。是的,我已经扫描了它以确保它们是相同的。 也许我错过了一些小细节。无论如何,有人可以帮我解决这个错误,以便我继续前进吗? 这是get方法:

  List<Map<String, Object>> get groupedTransactionValues {
    return List.generate(7, (index) {
      final weekDay = DateTime.now().subtract(
        Duration(days: index),
      );
  var totalSum = 0.0;

  for (int i; 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,
  };
});

}

下面是它在 Flutter 中的实现:

  @override
  Widget build(BuildContext context) {
    return Card(
      elevation: 6,
      margin: EdgeInsets.all(20),
      child: Row(
        children: groupedTransactionValues.map((data) {

        }).toList(),
      ),
    );
  }
}

这是错误消息:

The following NoSuchMethodError was thrown building Chart(dirty):
The method '<' was called on null.
Receiver: null
Tried calling: <(0)

When the exception was thrown, this was the stack:
#0      Object.noSuchMethod  (dart:core-patch/object_patch.dart:51:5)
#1      Chart.groupedTransactionValues.<anonymous closure> 
package:expense/widgets/chart.dart:19
#2      new List.generate  (dart:core-patch/array_patch.dart:78:28)
#3      Chart.groupedTransactionValues 
package:expense/widgets/chart.dart:13
#4      Chart.build 
package:expense/widgets/chart.dart:45
#5      StatelessElement.build 
package:flutter/…/widgets/framework.dart:4620
#6      ComponentElement.performRebuild 
package:flutter/…/widgets/framework.dart:4546
#7      Element.rebuild 
package:flutter/…/widgets/framework.dart:4262
#8      ComponentElement._firstBuild 
package:flutter/…/widgets/framework.dart:4525
#9      ComponentElement.mount 
package:flutter/…/widgets/framework.dart:4520
#10     Element.inflateWidget 
package:flutter/…/widgets/framework.dart:3490
#11     MultiChildRenderObjectElement.mount 
package:flutter/…/widgets/framework.dart:5991
...     Normal element mounting (109 frames)
#120    Element.inflateWidget 
package:flutter/…/widgets/framework.dart:3490
#121    MultiChildRenderObjectElement.mount 
package:flutter/…/widgets/framework.dart:5991
...     Normal element mounting (210 frames)
#331    Element.inflateWidget 
package:flutter/…/widgets/framework.dart:3490
#332    MultiChildRenderObjectElement.mount 
package:flutter/…/widgets/framework.dart:5991
...     Normal element mounting (273 frames)
#605    Element.inflateWidget 
package:flutter/…/widgets/framework.dart:3490
#606    Element.updateChild 
package:flutter/…/widgets/framework.dart:3258
#607    RenderObjectToWidgetElement._rebuild 
package:flutter/…/widgets/binding.dart:1174
#608    RenderObjectToWidgetElement.mount 
package:flutter/…/widgets/binding.dart:1145
#609    RenderObjectToWidgetAdapter.attachToRenderTree.<anonymous closure> 
package:flutter/…/widgets/binding.dart:1087
#610    BuildOwner.buildScope 
package:flutter/…/widgets/framework.dart:2620
#611    RenderObjectToWidgetAdapter.attachToRenderTree 
package:flutter/…/widgets/binding.dart:1086
#612    WidgetsBinding.attachRootWidget 
package:flutter/…/widgets/binding.dart:927
#613    WidgetsBinding.scheduleAttachRootWidget.<anonymous closure> 
package:flutter/…/widgets/binding.dart:908
(elided 11 frames from class _RawReceivePortImpl, class _Timer, dart:async, and dart:async-patch)

【问题讨论】:

    标签: flutter dart visual-studio-code


    【解决方案1】:
    for (int i; i < recentTransactions.length; i++) {
    

    这是导致错误的部分,因为它声明:“方法 '

    for (int i = 0; i < recentTransactions.length; i++) {
    

    【讨论】:

    • 就是这样!欣赏你!
    猜你喜欢
    • 1970-01-01
    • 2023-03-07
    • 2017-10-24
    相关资源
    最近更新 更多