我在Flutter应用程序中的StatefulWidget类的构建方法中返回下面的小部件:
return Stack(
children: [
Observer(
builder: (context) {
return SingleChildScrollView(
scrollDirection: Axis.vertical,
child: Column(
children: [
_dashboardStore.showFirstPageLoading == false
? _buildDashboardTableDataWidgets()
: Container(),
_dashboardStore.showFirstPageLoading == false
? _buildFactAndFigureWidget()
: Container(),
//_showSearchAndSummaryList(),
],
),
);
},
),
_showRetryButton(),
_showLoader()
],
);
你可以注意到我在flutter中使用了Observer和mobx状态管理。这里,_dashboardStore是mixinStore的类,初始化如下:
_dashboardStore = Provider.of<DashboardStore>(context, listen: false);
在我上面的Widget中,我使用了下面的可观察字段,这是他们在DashboardStore中的内容:
@observable
DashboardTableDataRes? dashboardTableDataRes;
@observable
FactAndFigureDataRes? dashboardFactAndFigureRes;
但我在运行应用程序时遇到以下异常:
在构建Observer(dirty)时抛出了以下_Exception:异常:构建Observer时出错,但由于disableErrorBoundaries==true而被捕获
导致错误的相关小部件为:Observer观察者:file:/home/growexx/StudioProjects/flutter-mobile-app/lib/ui/dashboard/dashboard_view.dart:92:9
下面是我在pubspec.yaml文件中使用的依赖:
mobx: ^2.0.1
flutter_mobx: ^2.0.0
provider: ^6.0.0
下面是开发依赖项:
mobx_codegen: ^2.0.1+3
build_runner: ^2.0.3
我做错了什么或者可能有什么问题?
1条答案
按热度按时间jmo0nnb31#
您直接返回singleChildScrollView而没有首先确保null安全可能是问题所在。
所以,你可以尝试下面的方法来避免这个错误:
另外,我假设您的存储(控制器)中的
_dashboardStore.showFirstPageLoading == false
使用默认值初始化。如果没有,那么也尝试对
_dashboardStore.showFirstPageLoading == false
使用null safe,并返回loading或您希望在代码中返回的内容。