Open LvJson opened 8 months ago
I found the reason for the error.
If i set navigatorObservers,it will throw exception.
GetMaterialApp(
navigatorObservers: [
GetXRouterObserver()
],
)
class GetXRouterObserver extends NavigatorObserver {
@override
void didPush(Route<dynamic> route, Route<dynamic>? previousRoute) {
RouterReportManager.reportCurrentRoute(route);
}
@override
void didPop(Route<dynamic> route, Route<dynamic>? previousRoute) async {
RouterReportManager.reportRouteDispose(route);
}
}
I found the reason for the error.
If i set navigatorObservers,it will throw exception.
GetMaterialApp( navigatorObservers: [ GetXRouterObserver() ], ) class GetXRouterObserver extends NavigatorObserver { @override void didPush(Route<dynamic> route, Route<dynamic>? previousRoute) { RouterReportManager.reportCurrentRoute(route); } @override void didPop(Route<dynamic> route, Route<dynamic>? previousRoute) async { RouterReportManager.reportRouteDispose(route); } }
有办法在不移除这个observer的情况下解决这个bug吗?
我这边有个问题:我想在路由之前判断用户是否登录,如果没登录我路由就不跳转,但是中间件必须要返回一个RoutSetting,因此我想着监听路由跳转,加了observer,但是碰到跟你一样 的报错。
Describe the bug When i use Get.back(),it will throw exception,but when i use Phone physical return button ,it's great.
The relevant error-causing widget was: TabBar TabBar:file:///Users/mac/Documents/jiachao/flutter_jiachao/jc_agg/lib/pages/test_page/test_view.dart:26:11 When the exception was thrown, this was the stack:
0 _IndicatorPainter.paint (package:flutter/src/material/tabs.dart:532:46)
1 RenderCustomPaint._paintWithPainter (package:flutter/src/rendering/custom_paint.dart:588:13)
2 RenderCustomPaint.paint (package:flutter/src/rendering/custom_paint.dart:630:7)
3 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3208:7)
4 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:250:13)
5 RenderBoxContainerDefaultsMixin.defaultPaint (package:flutter/src/rendering/box.dart:2882:15)
6 RenderFlex.paint (package:flutter/src/rendering/flex.dart:1040:7)
7 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3208:7)
8 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:250:13)
9 RenderBoxContainerDefaultsMixin.defaultPaint (package:flutter/src/rendering/box.dart:2882:15)
10 RenderCustomMultiChildLayoutBox.paint (package:flutter/src/rendering/custom_layout.dart:408:5)
11 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3208:7)
12 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:250:13)
13 RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:129:13)
14 _RenderInkFeatures.paint (package:flutter/src/material/material.dart:662:11)
15 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3208:7)
16 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:250:13)
17 RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:129:13)
18 RenderPhysicalModel.paint. (package:flutter/src/rendering/proxy_box.dart:2043:15)
19 PaintingContext.pushClipRRect (package:flutter/src/rendering/object.dart:575:14)
20 RenderPhysicalModel.paint (package:flutter/src/rendering/proxy_box.dart:2030:21)
21 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3208:7)
22 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:250:13)
23 RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:129:13)
24 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3208:7)
25 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:250:13)
26 RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:129:13)
27 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3208:7)
28 PaintingContext._repaintCompositedChild (package:flutter/src/rendering/object.dart:166:11)
29 PaintingContext.repaintCompositedChild (package:flutter/src/rendering/object.dart:109:5)
30 PipelineOwner.flushPaint (package:flutter/src/rendering/object.dart:1156:31)
31 PipelineOwner.flushPaint (package:flutter/src/rendering/object.dart:1166:15)
32 RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:593:23)
33 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:986:13)
34 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:457:5)
35 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1325:15)
36 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1255:9)
37 SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:1113:5)
38 _invoke (dart:ui/hooks.dart:312:13)
39 PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:383:5)
40 _drawFrame (dart:ui/hooks.dart:283:31)
The following RenderObject was being processed when the exception was fired: RenderCustomPaint#6ebc9 relayoutBoundary=up2 ... parentData: offset=Offset(0.0, 0.0); flex=null; fit=null (can use size) ... constraints: BoxConstraints(0.0<=w<=360.0, 0.0<=h<=Infinity) ... size: Size(360.0, 48.0) ... painter: _IndicatorPainter#c8faf(AnimationController#54b98(▶ 0.000; paused; DISPOSED)) RenderObject: RenderCustomPaint#6ebc9 relayoutBoundary=up2 parentData: offset=Offset(0.0, 0.0); flex=null; fit=null (can use size) constraints: BoxConstraints(0.0<=w<=360.0, 0.0<=h<=Infinity) size: Size(360.0, 48.0) painter: _IndicatorPainter#c8faf(AnimationController#54b98(▶ 0.000; paused; DISPOSED)) ... child: _TabLabelBarRenderer#47174 relayoutBoundary=up3 ... parentData: (can use size)
... constraints: BoxConstraints(0.0<=w<=360.0, 0.0<=h<=Infinity)
... size: Size(360.0, 48.0)
... direction: horizontal
... mainAxisAlignment: start
... mainAxisSize: max
... crossAxisAlignment: center
... textDirection: ltr
... verticalDirection: down
... child 1: RenderSemanticsAnnotations#19000 relayoutBoundary=up4
... parentData: offset=Offset(0.0, 0.0); flex=1; fit=FlexFit.tight (can use size)
... constraints: BoxConstraints(w=180.0, 0.0<=h<=Infinity)
... size: Size(180.0, 48.0)
... child: RenderMouseRegion#14487 relayoutBoundary=up5
... parentData: (can use size)
... constraints: BoxConstraints(w=180.0, 0.0<=h<=Infinity)
... size: Size(180.0, 48.0)
... behavior: opaque
... listeners: enter, exit
... cursor: SystemMouseCursor(click)
... child: RenderSemanticsAnnotations#3eabf relayoutBoundary=up6
... parentData: (can use size)
... constraints: BoxConstraints(w=180.0, 0.0<=h<=Infinity)
... size: Size(180.0, 48.0)
... child 2: RenderSemanticsAnnotations#d151c relayoutBoundary=up4
... parentData: offset=Offset(180.0, 0.0); flex=1; fit=FlexFit.tight (can use size)
... constraints: BoxConstraints(w=180.0, 0.0<=h<=Infinity)
... size: Size(180.0, 48.0)
... child: RenderMouseRegion#cf691 relayoutBoundary=up5
... parentData: (can use size)
... constraints: BoxConstraints(w=180.0, 0.0<=h<=Infinity)
... size: Size(180.0, 48.0)
... behavior: opaque
... listeners: enter, exit
... cursor: SystemMouseCursor(click)
... child: RenderSemanticsAnnotations#034cf relayoutBoundary=up6
... parentData: (can use size)
... constraints: BoxConstraints(w=180.0, 0.0<=h<=Infinity)
... size: Size(180.0, 48.0)
Reproduction code NOTE: THIS IS MANDATORY, IF YOUR ISSUE DOES NOT CONTAIN IT, IT WILL BE CLOSED PRELIMINARY)
example:
To Reproduce Steps to reproduce the behavior:
Flutter Version: Enter the version of the Flutter you are using [✓] Flutter (Channel stable, 3.16.4, on macOS 12.7.2 21G1974 darwin-x64, locale zh-Hans-CN) [✓] Android toolchain - develop for Android devices (Android SDK version 33.0.2) [✓] Xcode - develop for iOS and macOS (Xcode 14.0) [✓] Chrome - develop for the web [✓] Android Studio (version 2023.1) [✓] Connected device (3 available)
Getx Version: get: ^4.6.6