问题描述
小部件库捕获的异常 =================================== 如下StackOverflowError 被抛出构建 BSheetWidget(dirty,dependencies: [MediaQuery],状态:_BSheetWidgetState#759dc):堆栈溢出
相关的导致错误的小部件是 BSheetWidget lib\...\client\clientscreen_view.dart:874 抛出异常时, 这是堆栈 #0 Driver.carReference 包:taxi_app/…/models/driver.dart:29 #1 Driver.carReference 包:taxi_app/…/models/driver.dart:29 #2 Driver.carReference 包:taxi_app/…/models/driver.dart:29 #3 Driver.carReference 包:taxi_app/…/models/driver.dart:29 #4 Driver.carReference 包:taxi_app/.../models/driver.dart:29 ... ================================================= ============================== 在 2987 毫秒内重新加载了 2190 个库中的 1 个。
我发现问题出在这里:
child: Container(
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceAround,children: [
Column(
mainAxisAlignment: MainAxisAlignment.center,children: [
Text('vehicule model'),],),Text(widget.fullData.driver.carReference != null ? widget.fullData.driver.carReference.toString() : '',style: TextStyle(color: ThemeUtils.bluePlus,fontSize: 18)),//
],
但我发现当我尝试更改文本时:
Text(widget.fullData.driver.carReference != null ? widget.fullData.driver.carReference.toString() : '',
它有效:
我的模型:
@override
Driver clone(Map<String,dynamic> map) => Driver()..fromJson(map);
static const String carNameKey = 'carName';
static const String carReferenceKey = 'carReference';
static const String carSerieKey = 'carSerie';
static const String carImageKey = 'carImage';
String get carName => get<String>(carNameKey);
String get carReference => get<String>(carReference);
String get carSerie => get<String>(carSerie);
ParseFile get carImage => get<ParseFile>(carImageKey);
set carName(String value) => set<String>(carNameKey,value);
set carReference(String value) => set<String>(carReferenceKey,value);
set carSerie(String value) => set<String>(carSerieKey,value);
set carImage(ParseFile value) => set<ParseFile>(carImageKey,value);
解决方法
解决办法是将我的setter修改为
String get carReference => get<String>(carReferenceKey);
String get carSerie => get<String>(carSerieKey);