![](/img/trans.png)
[英]How to maintain Flutter Global BloC state using Provider on Hot Reload?
[英]How to keep BLoC state on Flutter Hot Reload?
我喜歡 Flutter 熱重載,但發現我的 BLoC 中的 state 沒有保留。 每次我進行熱重載時它都會重置。
有沒有辦法保存 state 以便它在熱重載后仍然存在? (我可以接聽電話之類的嗎?)
謝謝你的時間!
@RémiRousselet出現了! 我將狀態保持在有狀態小部件之外! 為了清楚起見,這是之前和之后的代碼。 (MaterialApp home:參數和_MyHomePageState.build是真正的更改所在的位置)
錯誤代碼:
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
home: BlocProvider<PandemicBloc>(
bloc: PandemicBloc(), child: MyHomePage(title: 'Pandemic Tracker')),
);
}
}
class MyHomePage extends StatefulWidget {
MyHomePage({Key key, this.title}) : super(key: key);
final String title;
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
final PandemicBloc pandemicBloc = BlocProvider.of<PandemicBloc>(context);
int _currentTab = 0;
Widget build(BuildContext context) {
return DefaultTabController(...
好代碼:
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
home: MyHomePage(title: 'Pandemic Tracker'),
);
}
}
class MyHomePage extends StatefulWidget {
MyHomePage({Key key, this.title}) : super(key: key);
final String title;
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
int _currentTab = 0;
final _pandemicBloc = PandemicBloc();
Widget build(BuildContext context) {
return BlocProvider<PandemicBloc>(
bloc: _pandemicBloc,
child: DefaultTabController(...
您可以檢查您是否在 MaterialApp 中使用全局 navigatorKey 嗎?
我刪除了我的,問題就解決了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.