Flutter 登录后,在Flatter中使用提供程序更改布局时出现黑屏
我正在使用提供商处理用户在颤振应用程序中的登录。我创建了一个名为AccountManager的类,该类扩展了ChangeNotifier并更新了一个布尔值,该布尔值告诉我的主框架使用两个小部件中的哪一个来绘制其内容 当应用程序启动时,我没有登录,它会正确加载NotLoggedInLayout(),它有一个要登录的表单。我输入我的凭证,使用AccountManager登录,AccountManager反过来调用notifyListeners(),并告诉我的消费者重新绘制并更改为LoggedInLayout()。我可以看到,它会在短时间内重新绘制到正确的屏幕,但随后黑屏覆盖了所有内容 之后,如果我按“R”重新加载应用程序,它会正确显示LoggedInLayout(),因为它记住了登录名。但是,如果我按“r”进行热重新加载,则在终端中会出现以下错误:Flutter 登录后,在Flatter中使用提供程序更改布局时出现黑屏,flutter,flutter-provider,Flutter,Flutter Provider,我正在使用提供商处理用户在颤振应用程序中的登录。我创建了一个名为AccountManager的类,该类扩展了ChangeNotifier并更新了一个布尔值,该布尔值告诉我的主框架使用两个小部件中的哪一个来绘制其内容 当应用程序启动时,我没有登录,它会正确加载NotLoggedInLayout(),它有一个要登录的表单。我输入我的凭证,使用AccountManager登录,AccountManager反过来调用notifyListeners(),并告诉我的消费者重新绘制并更改为LoggedInLa
Performing hot reload... ⢿
══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY
╞═══════════════════════════════════════════════════════════
The following assertion was thrown building
Navigator-[GlobalObjectKey<NavigatorState>
_WidgetsAppState#1e7c5](dirty, dependencies: [HeroControllerScope,
UnmanagedRestorationScope],
state: NavigatorState#c9fc1(tickers: tracking 0 tickers)):
'package:flutter/src/widgets/navigator.dart': Failed assertion: line 5308 pos 12:
'_history.isNotEmpty': is not true.
Either the assertion indicates an error in the framework itself, or we should
provide substantially
more information in this error message to help you determine and fix the
underlying cause.
In either case, please report this assertion by filing a bug on GitHub:
https://github.com/flutter/flutter/issues/new?template=2_bug.md
The relevant error-causing widget was:
MaterialApp file:///home/bruno/Desarrollo/TinviTo/creators/lib/main.dart:20:14
When the exception was thrown, this was the stack:
#2 NavigatorState.build (package:flutter/src/widgets/navigator.dart:5308:12)
#3 StatefulElement.build
(package:flutter/src/widgets/framework.dart:4710:27)
#4 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4593:15)
#5 StatefulElement.performRebuild
(package:flutter/src/widgets/framework.dart:4766:11)
#6 Element.rebuild (package:flutter/src/widgets/framework.dart:4284:5)
#7 StatefulElement.update
(package:flutter/src/widgets/framework.dart:4798:5)
#8 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:15)
#9 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4618:16)
#10 Element.rebuild (package:flutter/src/widgets/framework.dart:4284:5)
#11 ProxyElement.update (package:flutter/src/widgets/framework.dart:4945:5)
#12 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:15)
#13 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4618:16)
#14 Element.rebuild (package:flutter/src/widgets/framework.dart:4284:5)
#15 ProxyElement.update (package:flutter/src/widgets/framework.dart:4945:5)
#16 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:15)
#17 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4618:16)
#18 Element.rebuild (package:flutter/src/widgets/framework.dart:4284:5)
#19 ProxyElement.update (package:flutter/src/widgets/framework.dart:4945:5)
#20 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:15)
#21 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4618:16)
#22 Element.rebuild (package:flutter/src/widgets/framework.dart:4284:5)
#23 StatelessElement.update
(package:flutter/src/widgets/framework.dart:4674:5)
#24 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:15)
#25 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4618:16)
#26 Element.rebuild (package:flutter/src/widgets/framework.dart:4284:5)
#27 ProxyElement.update (package:flutter/src/widgets/framework.dart:4945:5)
#28 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:15)
#29 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4618:16)
#30 Element.rebuild (package:flutter/src/widgets/framework.dart:4284:5)
#31 StatelessElement.update
(package:flutter/src/widgets/framework.dart:4674:5)
#32 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:15)
#33 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4618:16)
#34 StatefulElement.performRebuild
(package:flutter/src/widgets/framework.dart:4766:11)
#35 Element.rebuild (package:flutter/src/widgets/framework.dart:4284:5)
#36 StatefulElement.update
(package:flutter/src/widgets/framework.dart:4798:5)
#37 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:15)
#38 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4618:16)
#39 Element.rebuild (package:flutter/src/widgets/framework.dart:4284:5)
#40 ProxyElement.update (package:flutter/src/widgets/framework.dart:4945:5)
#41 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:15)
#42 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4618:16)
#43 StatefulElement.performRebuild
(package:flutter/src/widgets/framework.dart:4766:11)
#44 Element.rebuild (package:flutter/src/widgets/framework.dart:4284:5)
#45 StatefulElement.update
(package:flutter/src/widgets/framework.dart:4798:5)
#46 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:15)
#47 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4618:16)
#48 Element.rebuild (package:flutter/src/widgets/framework.dart:4284:5)
#49 StatelessElement.update
(package:flutter/src/widgets/framework.dart:4674:5)
#50 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:15)
#51 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4618:16)
#52 Element.rebuild (package:flutter/src/widgets/framework.dart:4284:5)
#53 ProxyElement.update (package:flutter/src/widgets/framework.dart:4945:5)
#54 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:15)
#55 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4618:16)
#56 Element.rebuild (package:flutter/src/widgets/framework.dart:4284:5)
#57 StatelessElement.update
(package:flutter/src/widgets/framework.dart:4674:5)
#58 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:15)
#59 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4618:16)
#60 Element.rebuild (package:flutter/src/widgets/framework.dart:4284:5)
#61 ProxyElement.update (package:flutter/src/widgets/framework.dart:4945:5)
#62 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:15)
#63 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4618:16)
#64 Element.rebuild (package:flutter/src/widgets/framework.dart:4284:5)
#65 ProxyElement.update (package:flutter/src/widgets/framework.dart:4945:5)
#66 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:15)
#67 SingleChildRenderObjectElement.update
(package:flutter/src/widgets/framework.dart:6114:14)
#68 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:15)
#69 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4618:16)
#70 StatefulElement.performRebuild
(package:flutter/src/widgets/framework.dart:4766:11)
#71 Element.rebuild (package:flutter/src/widgets/framework.dart:4284:5)
#72 StatefulElement.update
(package:flutter/src/widgets/framework.dart:4798:5)
#73 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:15)
#74 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4618:16)
#75 Element.rebuild (package:flutter/src/widgets/framework.dart:4284:5)
#76 ProxyElement.update (package:flutter/src/widgets/framework.dart:4945:5)
#77 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:15)
#78 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4618:16)
#79 StatefulElement.performRebuild
(package:flutter/src/widgets/framework.dart:4766:11)
#80 Element.rebuild (package:flutter/src/widgets/framework.dart:4284:5)
#81 StatefulElement.update
(package:flutter/src/widgets/framework.dart:4798:5)
#82 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:15)
#83 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4618:16)
#84 Element.rebuild (package:flutter/src/widgets/framework.dart:4284:5)
#85 ProxyElement.update (package:flutter/src/widgets/framework.dart:4945:5)
#86 _InheritedNotifierElement.update
(package:flutter/src/widgets/inherited_notifier.dart:181:11)
#87 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:15)
#88 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4618:16)
#89 StatefulElement.performRebuild
(package:flutter/src/widgets/framework.dart:4766:11)
#90 Element.rebuild (package:flutter/src/widgets/framework.dart:4284:5)
#91 StatefulElement.update
(package:flutter/src/widgets/framework.dart:4798:5)
#92 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:15)
#93 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4618:16)
#94 Element.rebuild (package:flutter/src/widgets/framework.dart:4284:5)
#95 ProxyElement.update (package:flutter/src/widgets/framework.dart:4945:5)
#96 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:15)
#97 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4618:16)
#98 StatefulElement.performRebuild
(package:flutter/src/widgets/framework.dart:4766:11)
#99 Element.rebuild (package:flutter/src/widgets/framework.dart:4284:5)
#100 StatefulElement.update
(package:flutter/src/widgets/framework.dart:4798:5)
#101 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:15)
#102 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4618:16)
#103 Element.rebuild (package:flutter/src/widgets/framework.dart:4284:5)
#104 ProxyElement.update (package:flutter/src/widgets/framework.dart:4945:5)
#105 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:15)
#106 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4618:16)
#107 StatefulElement.performRebuild
(package:flutter/src/widgets/framework.dart:4766:11)
#108 Element.rebuild (package:flutter/src/widgets/framework.dart:4284:5)
#109 StatefulElement.update
(package:flutter/src/widgets/framework.dart:4798:5)
#110 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:15)
#111 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4618:16)
#112 Element.rebuild (package:flutter/src/widgets/framework.dart:4284:5)
#113 ProxyElement.update (package:flutter/src/widgets/framework.dart:4945:5)
#114 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:15)
#115 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4618:16)
#116 StatefulElement.performRebuild
(package:flutter/src/widgets/framework.dart:4766:11)
#117 Element.rebuild (package:flutter/src/widgets/framework.dart:4284:5)
#118 StatefulElement.update
(package:flutter/src/widgets/framework.dart:4798:5)
#119 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:15)
#120 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4618:16)
#121 Element.rebuild (package:flutter/src/widgets/framework.dart:4284:5)
#122 ProxyElement.update (package:flutter/src/widgets/framework.dart:4945:5)
#123 _InheritedNotifierElement.update
(package:flutter/src/widgets/inherited_notifier.dart:181:11)
#124 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:15)
#125 SingleChildRenderObjectElement.update
(package:flutter/src/widgets/framework.dart:6114:14)
#126 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:15)
#127 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4618:16)
#128 Element.rebuild (package:flutter/src/widgets/framework.dart:4284:5)
#129 ProxyElement.update (package:flutter/src/widgets/framework.dart:4945:5)
#130 _InheritedNotifierElement.update
(package:flutter/src/widgets/inherited_notifier.dart:181:11)
#131 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:15)
#132 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4618:16)
#133 StatefulElement.performRebuild
(package:flutter/src/widgets/framework.dart:4766:11)
#134 Element.rebuild (package:flutter/src/widgets/framework.dart:4284:5)
#135 StatefulElement.update
(package:flutter/src/widgets/framework.dart:4798:5)
#136 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:15)
#137 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4618:16)
#138 StatefulElement.performRebuild
(package:flutter/src/widgets/framework.dart:4766:11)
#139 Element.rebuild (package:flutter/src/widgets/framework.dart:4284:5)
#140 StatefulElement.update
(package:flutter/src/widgets/framework.dart:4798:5)
#141 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:15)
#142 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4618:16)
#143 Element.rebuild (package:flutter/src/widgets/framework.dart:4284:5)
#144 ProxyElement.update (package:flutter/src/widgets/framework.dart:4945:5)
#145 _InheritedNotifierElement.update
(package:flutter/src/widgets/inherited_notifier.dart:181:11)
#146 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:15)
#147 SingleChildRenderObjectElement.update
(package:flutter/src/widgets/framework.dart:6114:14)
#148 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:15)
#149 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4618:16)
#150 Element.rebuild (package:flutter/src/widgets/framework.dart:4284:5)
#151 ProxyElement.update (package:flutter/src/widgets/framework.dart:4945:5)
#152 _InheritedNotifierElement.update
(package:flutter/src/widgets/inherited_notifier.dart:181:11)
#153 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:15)
#154 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4618:16)
#155 StatefulElement.performRebuild
(package:flutter/src/widgets/framework.dart:4766:11)
#156 Element.rebuild (package:flutter/src/widgets/framework.dart:4284:5)
#157 StatefulElement.update
(package:flutter/src/widgets/framework.dart:4798:5)
#158 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:15)
#159 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4618:16)
#160 StatefulElement.performRebuild
(package:flutter/src/widgets/framework.dart:4766:11)
#161 Element.rebuild (package:flutter/src/widgets/framework.dart:4284:5)
#162 StatefulElement.update
(package:flutter/src/widgets/framework.dart:4798:5)
#163 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:15)
#164 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4618:16)
#165 Element.rebuild (package:flutter/src/widgets/framework.dart:4284:5)
#166 ProxyElement.update (package:flutter/src/widgets/framework.dart:4945:5)
#167 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:15)
#168 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4618:16)
#169 StatefulElement.performRebuild
(package:flutter/src/widgets/framework.dart:4766:11)
#170 Element.rebuild (package:flutter/src/widgets/framework.dart:4284:5)
#171 StatefulElement.update
(package:flutter/src/widgets/framework.dart:4798:5)
#172 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:15)
#173 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4618:16)
#174 Element.rebuild (package:flutter/src/widgets/framework.dart:4284:5)
#175 ProxyElement.update (package:flutter/src/widgets/framework.dart:4945:5)
#176 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:15)
#177 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4618:16)
#178 StatefulElement.performRebuild
(package:flutter/src/widgets/framework.dart:4766:11)
#179 Element.rebuild (package:flutter/src/widgets/framework.dart:4284:5)
#180 StatefulElement.update
(package:flutter/src/widgets/framework.dart:4798:5)
#181 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:15)
#182 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4618:16)
#183 StatefulElement.performRebuild
(package:flutter/src/widgets/framework.dart:4766:11)
#184 Element.rebuild (package:flutter/src/widgets/framework.dart:4284:5)
#185 StatefulElement.update
(package:flutter/src/widgets/framework.dart:4798:5)
#186 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:15)
#187 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4618:16)
#188 Element.rebuild (package:flutter/src/widgets/framework.dart:4284:5)
#189 ProxyElement.update (package:flutter/src/widgets/framework.dart:4945:5)
#190 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:15)
#191 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4618:16)
#192 Element.rebuild (package:flutter/src/widgets/framework.dart:4284:5)
#193 ProxyElement.update (package:flutter/src/widgets/framework.dart:4945:5)
#194 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:15)
#195 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4618:16)
#196 StatefulElement.performRebuild
(package:flutter/src/widgets/framework.dart:4766:11)
#197 Element.rebuild (package:flutter/src/widgets/framework.dart:4284:5)
#198 StatefulElement.update
(package:flutter/src/widgets/framework.dart:4798:5)
#199 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:15)
#200 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4618:16)
#201 _InheritedProviderScopeElement.performRebuild
(package:provider/src/inherited_provider.dart:456:11)
#202 Element.rebuild (package:flutter/src/widgets/framework.dart:4284:5)
#203 ProxyElement.update (package:flutter/src/widgets/framework.dart:4945:5)
#204 _InheritedProviderScopeElement.update
(package:provider/src/inherited_provider.dart:477:11)
#205 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:15)
#206 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4618:16)
#207 Element.rebuild (package:flutter/src/widgets/framework.dart:4284:5)
#208 StatelessElement.update
(package:flutter/src/widgets/framework.dart:4674:5)
#209 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:15)
#210 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4618:16)
#211 Element.rebuild (package:flutter/src/widgets/framework.dart:4284:5)
#212 StatelessElement.update
(package:flutter/src/widgets/framework.dart:4674:5)
#213 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:15)
#214 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4618:16)
#215 Element.rebuild (package:flutter/src/widgets/framework.dart:4284:5)
#216 StatelessElement.update
(package:flutter/src/widgets/framework.dart:4674:5)
#217 Element.updateChild (package:flutter/src/widgets/framework.dart:3363:15)
#218 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:4618:16)
#219 Element.rebuild (package:flutter/src/widgets/framework.dart:4284:5)
#220 BuildOwner.buildScope
(package:flutter/src/widgets/framework.dart:2582:33)
#221 WidgetsBinding.drawFrame
(package:flutter/src/widgets/binding.dart:875:21)
#222 RendererBinding._handlePersistentFrameCallback
(package:flutter/src/rendering/binding.dart:328:5)
#223 SchedulerBinding._invokeFrameCallback
(package:flutter/src/scheduler/binding.dart:1144:15)
#224 SchedulerBinding.handleDrawFrame
(package:flutter/src/scheduler/binding.dart:1082:9)
#225 SchedulerBinding.scheduleWarmUpFrame.<anonymous closure>
(package:flutter/src/scheduler/binding.dart:865:7)
(elided 6 frames from class _AssertionError, class _RawReceivePortImpl, class
_Timer, and dart:async-patch)
正在执行热重新加载。。。⢿
══╡ WIDGETS库捕获到异常
╞═══════════════════════════════════════════════════════════
以下断言被抛出到建筑中
导航器-[GlobalObject]键
_WidgetSapState#1e7c5](脏,依赖:[HeroControllerScope,
非托管存储范围],
状态:导航状态#c9fc1(股票代码:跟踪0个股票代码)):
“package:flatter/src/widgets/navigator.dart”:失败的断言:第5308行位置12:
“_history.isNotEmpty”:不正确。
要么断言表明框架本身存在错误,要么我们应该
提供大量
此错误消息中的更多信息可帮助您确定和修复错误
根本原因。
在任何一种情况下,请通过在GitHub上提交bug来报告此断言:
https://github.com/flutter/flutter/issues/new?template=2_bug.md
导致错误的相关小部件是:
材料聚丙烯file:///home/bruno/Desarrollo/TinviTo/creators/lib/main.dart:20:14
引发异常时,这是堆栈:
#2 NavigatorState.build(包:flatter/src/widgets/navigator.dart:5308:12)
#3 StatefulElement.build
(包:flatter/src/widgets/framework.dart:4710:27)
#4 ComponentElement.PerformBuild
(包:flatter/src/widgets/framework.dart:4593:15)
#5 StatefulElement.performRebuild
(包:flatter/src/widgets/framework.dart:4766:11)
#6.Element.rebuild(包:flatter/src/widgets/framework.dart:4284:5)
#7 StatefulElement.update
(包:flatter/src/widgets/framework.dart:4798:5)
#8 Element.updateChild(包:flatter/src/widgets/framework.dart:3363:15)
#9 ComponentElement.PerformBuild
(包:flatter/src/widgets/framework.dart:4618:16)
#10.Element.rebuild(包:flatter/src/widgets/framework.dart:4284:5)
#11 ProxyElement.update(包:flatter/src/widgets/framework.dart:4945:5)
#12 Element.updateChild(包:flatter/src/widgets/framework.dart:3363:15)
#13 ComponentElement.PerformBuild
(包:flatter/src/widgets/framework.dart:4618:16)
#14.Element.rebuild(包:flatter/src/widgets/framework.dart:4284:5)
#15 ProxyElement.update(包:flatter/src/widgets/framework.dart:4945:5)
#16 Element.updateChild(包:flatter/src/widgets/framework.dart:3363:15)
#17 ComponentElement.PerformBuild
(包:flatter/src/widgets/framework.dart:4618:16)
#18 Element.rebuild(包:flatter/src/widgets/framework.dart:4284:5)
#19 ProxyElement.update(包:flatter/src/widgets/framework.dart:4945:5)
#20 Element.updateChild(包:flatter/src/widgets/framework.dart:3363:15)
#21 ComponentElement.PerformBuild
(包:flatter/src/widgets/framework.dart:4618:16)
#22.Element.rebuild(包:flatter/src/widgets/framework.dart:4284:5)
#23.update
(包:flatter/src/widgets/framework.dart:4674:5)
#24 Element.updateChild(包:flatter/src/widgets/framework.dart:3363:15)
#25 ComponentElement.PerformBuild
(包:flatter/src/widgets/framework.dart:4618:16)
#26 Element.rebuild(包:flatter/src/widgets/framework.dart:4284:5)
#27 ProxyElement.update(包:flatter/src/widgets/framework.dart:4945:5)
#28 Element.updateChild(包:flatter/src/widgets/framework.dart:3363:15)
#29 ComponentElement.PerformBuild
(包:flatter/src/widgets/framework.dart:4618:16)
#30 Element.rebuild(包:flatter/src/widgets/framework.dart:4284:5)
#31.update
(包:flatter/src/widgets/framework.dart:4674:5)
#32 Element.updateChild(包:flatter/src/widgets/framework.dart:3363:15)
#33 ComponentElement.PerformBuild
(包:flatter/src/widgets/framework.dart:4618:16)
#34 StatefulElement.PerformBuild
(包:flatter/src/widgets/framework.dart:4766:11)
#35 Element.rebuild(包:flatter/src/widgets/framework.dart:4284:5)
#36 StatefulElement.update
(包:flatter/src/widgets/framework.dart:4798:5)
#37 Element.updateChild(包:flatter/src/widgets/framework.dart:3363:15)
#38 ComponentElement.PerformBuild
(包:flatter/src/widgets/framework.dart:4618:16)
#39 Element.rebuild(包:flatter/src/widgets/framework.dart:4284:5)
#40 ProxyElement.update(包:flatter/src/widgets/framework.dart:4945:5)
#41 Element.updateChild(包:flatter/src/widgets/framework.dart:3363:15)
#42 ComponentElement.PerformBuild
(包:flatter/src/widgets/framework.dart:4618:16)
#43 StatefulElement.PerformBuild
(包:flatter/src/widgets/framework.dart:4766:11)
#44 Element.rebuild(包:flatter/src/widgets/framework.dart:4284:5)
#45 StatefulElement.update
(包:flatter/src/widgets/framework.dart:4798:5)
#46 Element.updateChild(包:flatter/src/widgets/framework.dart:3363:15)
#47 ComponentElement.PerformBuild
(包:flatter/src/widgets/framework.dart:4618:16)
#48 Element.rebuild(包:flatter/src/widgets/framework.dart:4284:5)
#49.upd
import 'package:creators/layouts/LoggedIn.dart';
import 'package:creators/layouts/NotLoggedIn.dart';
import 'package:creators/providers/AccountManager.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MultiProvider(
providers: [
ChangeNotifierProvider<AccountManager>(
create: (_) => AccountManager(),
),
],
child: MaterialApp(
title: 'App Title',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(
title: 'App Title',
),
debugShowCheckedModeBanner: false,
),
);
}
}
class MyHomePage extends StatefulWidget {
MyHomePage({Key? key, required this.title}) : super(key: key);
final String title;
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Consumer<AccountManager>(
builder: (context, manager, child) {
bool isLoggedIn = manager.isLoggedIn;
return (isLoggedIn) ? LoggedInLayout() : NotLoggedInLayout();
},
),
);
}
}
import 'dart:convert';
import 'package:creators/models/User.dart';
import 'package:creators/services/AccountService.dart';
import 'package:flutter/foundation.dart';
import 'package:shared_preferences/shared_preferences.dart';
class AccountManager with ChangeNotifier {
User? _user;
User? get user => _user;
bool get isLoggedIn => _user != null;
AccountManager() {
// Inicializar variables desde la base de datos
_initData();
}
void _initData() async {
await this.loadUser();
notifyListeners();
}
Future localLogin({
required String email,
required String password,
}) async {
var result = await AccountService.localLogin(
email: email,
password: password,
);
if (result.statusCode == 200) {
String sBody = result.body;
Map<String, dynamic> body = jsonDecode(sBody);
User user = new User(
body['name'],
body['email'],
body['role'],
body['token'],
);
_user = user;
await this.saveUser();
notifyListeners();
} else {
String error = jsonDecode(result.body)['message'] ?? 'Error desconocido.';
throw Exception(error);
}
}
Future localRegister({
required String name,
required String email,
required String password,
}) async {
var result = await AccountService.localRegister(
name: name,
email: email,
password: password,
);
if (result.statusCode == 200) {
String sBody = result.body;
Map<String, dynamic> body = jsonDecode(sBody);
User user = new User(
body['name'],
body['email'],
body['role'],
body['token'],
);
_user = user;
await this.saveUser();
notifyListeners();
} else {
String error = jsonDecode(result.body)['message'] ?? 'Error desconocido.';
throw Exception(error);
}
}
saveUser() async {
if (_user != null) {
String bodySerialized = jsonEncode(_user!.toJson());
SharedPreferences prefs = await SharedPreferences.getInstance();
prefs.setString('user', bodySerialized);
}
}
loadUser() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
String? sBody = prefs.getString('user');
if (sBody != null) {
Map<String, dynamic> body = jsonDecode(sBody);
User user = new User(
body['name'],
body['email'],
body['role'],
body['token'],
);
_user = user;
}
}
void deleteUser() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
prefs.remove('user');
}
void logout() {
_user = null;
this.deleteUser();
notifyListeners();
}
}
await accountManager.localLogin(
email: email,
password: password,
);
Navigator.pop(context);