微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

StackOverflowError 是由我的自定义底部工作表小部件引发的

如何解决StackOverflowError 是由我的自定义底部工作表小部件引发的

当我尝试在底部工作表小部件上设置值时,抛出以下错误

小部件库捕获的异常 =================================== 如下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);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。