***Error 是由我的自定义底页小部件引发的
Posted
技术标签:
【中文标题】***Error 是由我的自定义底页小部件引发的【英文标题】:***Error is thrown by my custom bottom-sheet widget 【发布时间】:2021-07-26 13:19:17 【问题描述】:当我尝试在底页小部件上设置值时,会引发以下错误:
小部件库捕获的异常 ═══════════════════════════════════下面的***Error 被抛出构建 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() : '', style: TextStyle(color: ThemeUtils.bluePlus,fontSize: 18)),
有效:
我的模特:
@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);
【问题讨论】:
我用虚拟文本Container
替换了 Text(widget.fullData.driver.carReference != .....
工作正常。也许您需要检查 Thins 小部件的父级别,因为它正在使用列,您可以分享它的父级
我也用虚拟文本替换了 widget.fullData.driver.carReference 并且它有效我认为 prb 在数据中
【参考方案1】:
解决方法是将我的setter修改为
String get carReference => get<String>(carReferenceKey);
String get carSerie => get<String>(carSerieKey);
【讨论】:
以上是关于***Error 是由我的自定义底页小部件引发的的主要内容,如果未能解决你的问题,请参考以下文章
从 Glade 文件构建时,Gtkmm 自定义小部件会引发错误