Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The method '>' was called on null. #341

Closed
medz opened this issue Jul 30, 2020 · 5 comments
Closed

The method '>' was called on null. #341

medz opened this issue Jul 30, 2020 · 5 comments

Comments

@medz
Copy link

medz commented Jul 30, 2020

日志:

flutter: ══╡ EXCEPTION CAUGHT BY FOUNDATION LIBRARY ╞════════════════════════════════════════════════════════
flutter: The following NoSuchMethodError was thrown while dispatching notifications for
flutter: ValueNotifier<TaskState>:
flutter: The method '>' was called on null.
flutter: Receiver: null
flutter: Tried calling: >(0.0)
flutter:
flutter: When the exception was thrown, this was the stack:
flutter: #0      Object.noSuchMethod (dart:core-patch/object_patch.dart:53:5)
flutter: #1      double.< (dart:core-patch/double.dart:90:18)
flutter: #2      ScrollMetrics.outOfRange (package:flutter/src/widgets/scroll_metrics.dart:89:33)
flutter: #3      EasyRefreshPhysics.createBallisticSimulation (package:flutter_easyrefresh/src/physics/scroll_physics.dart:140:58)
flutter: #4      ScrollPositionWithSingleContext.goBallistic (package:flutter/src/widgets/scroll_position_with_single_context.dart:146:43)
flutter: #5      ScrollPositionWithSingleContext.jumpTo (package:flutter/src/widgets/scroll_position_with_single_context.dart:205:5)
flutter: #6      ScrollController.jumpTo (package:flutter/src/widgets/scroll_controller.dart:176:16)
flutter: #7      _EasyRefreshState.initState.<anonymous closure> (package:flutter_easyrefresh/src/refresher.dart:281:29)
flutter: #8      ChangeNotifier.notifyListeners (package:flutter/src/foundation/change_notifier.dart:207:21)
flutter: #9      ValueNotifier.value= (package:flutter/src/foundation/change_notifier.dart:274:5)
flutter: #10     _EasyRefreshSliverLoadControlState.initState.<anonymous closure> (package:flutter_easyrefresh/src/footer/load_indicator.dart:610:29)
flutter: #11     ChangeNotifier.notifyListeners (package:flutter/src/foundation/change_notifier.dart:207:21)
flutter: #12     ValueNotifier.value= (package:flutter/src/foundation/change_notifier.dart:274:5)
flutter: #13     _RenderEasyRefreshSliverLoad.performLayout (package:flutter_easyrefresh/src/footer/load_indicator.dart:183:25)
flutter: #14     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #15     RenderViewportBase.layoutChildSequence (package:flutter/src/rendering/viewport.dart:452:13)
flutter: #16     RenderViewport._attemptLayout (package:flutter/src/rendering/viewport.dart:1444:12)
flutter: #17     RenderViewport.performLayout (package:flutter/src/rendering/viewport.dart:1353:20)
flutter: #18     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #19     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
flutter: #20     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #21     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
flutter: #22     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #23     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
flutter: #24     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #25     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
flutter: #26     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #27     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
flutter: #28     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #29     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
flutter: #30     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #31     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
flutter: #32     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #33     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
flutter: #34     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #35     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
flutter: #36     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #37     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
flutter: #38     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #39     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
flutter: #40     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #41     MultiChildLayoutDelegate.layoutChild (package:flutter/src/rendering/custom_layout.dart:171:11)
flutter: #42     _ScaffoldLayout.performLayout (package:flutter/src/material/scaffold.dart:484:7)
flutter: #43     MultiChildLayoutDelegate._callPerformLayout (package:flutter/src/rendering/custom_layout.dart:240:7)
flutter: #44     RenderCustomMultiChildLayoutBox.performLayout (package:flutter/src/rendering/custom_layout.dart:399:14)
flutter: #45     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #46     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
flutter: #47     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #48     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
flutter: #49     _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1248:11)
flutter: #50     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #51     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
flutter: #52     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #53     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
flutter: #54     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #55     RenderSliverFixedExtentBoxAdaptor.performLayout (package:flutter/src/rendering/sliver_fixed_extent_list.dart:246:18)
flutter: #56     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #57     RenderSliverEdgeInsetsPadding.performLayout (package:flutter/src/rendering/sliver_padding.dart:135:11)
flutter: #58     _RenderSliverFractionalPadding.performLayout (package:flutter/src/widgets/sliver_fill.dart:168:11)
flutter: #59     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #60     RenderViewportBase.layoutChildSequence (package:flutter/src/rendering/viewport.dart:452:13)
flutter: #61     RenderViewport._attemptLayout (package:flutter/src/rendering/viewport.dart:1444:12)
flutter: #62     RenderViewport.performLayout (package:flutter/src/rendering/viewport.dart:1353:20)
flutter: #63     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #64     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
flutter: #65     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #66     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
flutter: #67     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #68     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
flutter: #69     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #70     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
flutter: #71     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #72     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
flutter: #73     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #74     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
flutter: #75     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #76     MultiChildLayoutDelegate.layoutChild (package:flutter/src/rendering/custom_layout.dart:171:11)
flutter: #77     _ScaffoldLayout.performLayout (package:flutter/src/material/scaffold.dart:484:7)
flutter: #78     MultiChildLayoutDelegate._callPerformLayout (package:flutter/src/rendering/custom_layout.dart:240:7)
flutter: #79     RenderCustomMultiChildLayoutBox.performLayout (package:flutter/src/rendering/custom_layout.dart:399:14)
flutter: #80     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #81     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
flutter: #82     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #83     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
flutter: #84     _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1248:11)
flutter: #85     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #86     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
flutter: #87     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #88     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
flutter: #89     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #90     RenderSliverFixedExtentBoxAdaptor.performLayout (package:flutter/src/rendering/sliver_fixed_extent_list.dart:246:18)
flutter: #91     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #92     RenderSliverEdgeInsetsPadding.performLayout (package:flutter/src/rendering/sliver_padding.dart:135:11)
flutter: #93     _RenderSliverFractionalPadding.performLayout (package:flutter/src/widgets/sliver_fill.dart:168:11)
flutter: #94     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #95     RenderViewportBase.layoutChildSequence (package:flutter/src/rendering/viewport.dart:452:13)
flutter: #96     RenderViewport._attemptLayout (package:flutter/src/rendering/viewport.dart:1444:12)
flutter: #97     RenderViewport.performLayout (package:flutter/src/rendering/viewport.dart:1353:20)
flutter: #98     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #99     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
flutter: #100    RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #101    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
flutter: #102    RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #103    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
flutter: #104    RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #105    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
flutter: #106    RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #107    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
flutter: #108    RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #109    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
flutter: #110    RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #111    _RenderLayoutBuilder.performLayout (package:flutter/src/widgets/layout_builder.dart:246:13)
flutter: #112    RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #113    MultiChildLayoutDelegate.layoutChild (package:flutter/src/rendering/custom_layout.dart:171:11)
flutter: #114    _ScaffoldLayout.performLayout (package:flutter/src/material/scaffold.dart:484:7)
flutter: #115    MultiChildLayoutDelegate._callPerformLayout (package:flutter/src/rendering/custom_layout.dart:240:7)
flutter: #116    RenderCustomMultiChildLayoutBox.performLayout (package:flutter/src/rendering/custom_layout.dart:399:14)
flutter: #117    RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #118    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
flutter: #119    RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #120    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
flutter: #121    _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1248:11)
flutter: #122    RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #123    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
flutter: #124    RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #125    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
flutter: #126    RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #127    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
flutter: #128    RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #129    RenderStack.performLayout (package:flutter/src/rendering/stack.dart:556:15)
flutter: #130    RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #131    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
flutter: #132    RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #133    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
flutter: #134    RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #135    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
flutter: #136    RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #137    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
flutter: #138    RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #139    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
flutter: #140    RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #141    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
flutter: #142    RenderOffstage.performLayout (package:flutter/src/rendering/proxy_box.dart:3225:13)
flutter: #143    RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #144    _RenderTheatre.performLayout (package:flutter/src/widgets/overlay.dart:700:15)
flutter: #145    RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #146    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
flutter: #147    RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #148    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
flutter: #149    RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #150    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
flutter: #151    RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
flutter: #152    RenderStack.performLayout (package:flutter/src/rendering/stack.dart:556:15)
flutter: #153    RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:1630:7)
flutter: #154    PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:887:18)
flutter: #155    RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:402:19)
flutter: #156    WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:884:13)
flutter: #157    RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:284:5)
flutter: #158    SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1113:15)
flutter: #159    SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1052:9)
flutter: #160    SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:968:5)
flutter: #164    _invoke (dart:ui/hooks.dart:261:10)
flutter: #165    _drawFrame (dart:ui/hooks.dart:219:3)
flutter: (elided 3 frames from dart:async)
flutter:
flutter: The ValueNotifier<TaskState> sending notification was:
flutter:   ValueNotifier<TaskState>#e57a2(Instance of 'TaskState')
flutter: ════════════════════════════════════════════════════════════════════════════════════════════════════

初步判读:
https://github.com/xuelongqy/flutter_easyrefresh/blob/v2/lib/src/footer/load_indicator.dart#L607-L613 这里引起的。

// 列表未占满长度监听
    extraExtentNotifier = ValueNotifier<double>(0.0);
    extraExtentNotifier.addListener(() {
      if (extraExtentNotifier.value != widget.taskNotifier.value.extraExtent) {
        widget.taskNotifier.value = widget.taskNotifier.value
            .copy(extraExtent: extraExtentNotifier.value);
      }
    });

因为修复 #337 这个问题所导致的新 Bug。虽然并不影响使用,但是谁希望应用一进去执行 firstRefresh 报一堆错误呢?

@xuelongqy
Copy link
Owner

哈哈 生命不息,BUG不止
已修复,将会在下个版本发布

@checkblue
Copy link

我也遇到这个问题了- -

@xuelongqy
Copy link
Owner

v2.1.5 已修复

@xiehaibang
Copy link

自定义 Header 的代码示例里又碰到这个问题了

════════ Exception caught by widgets library ═══════════════════════════════════
The method '>=' was called on null.
Receiver: null
Tried calling: >=(0.0)
The relevant error-causing widget was
MaterialHeaderWidget
══════════════════════════════════════════════════════════════════

@xiehaibang
Copy link

自定义 Header 的代码示例里又碰到这个问题了

════════ Exception caught by widgets library ═══════════════════════════════════
The method '>=' was called on null.
Receiver: null
Tried calling: >=(0.0)
The relevant error-causing widget was
MaterialHeaderWidget
══════════════════════════════════════════════════════════════════

抱歉,是我没有给 displacement 属性设置默认值导致的

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants