【发布时间】:2021-11-07 18:00:18
【问题描述】:
模型字段的值正在更改,但小部件未更新。当我重新导航到屏幕时,小部件正在更新。我想更新两个小部件。当我使用 GetBuilder() 屏幕 x 更新但尾随文本小部件没有。代码如下。
Getx 控制器:
late Rx<TeamBetModel> displayModel = TeamBetModel().obs;
void setDMValues(TeamBetModel? tm) {
displayModel.value.t1Goals = tm!.t1Goals;
print('++ ${displayModel.value.t1Goals}');
}
屏幕 x
Obx(
() => Text(
_savebetcontroller.displayModel.value.t1Goals ==
null
? '-'
: _savebetcontroller.displayModel.value.t1Goals
.toString(),
style: TextStyle(
fontSize: 90.0,
),
),
),
class BetItemWidget extends StatelessWidget {
//
BetItemWidget_Fields _betItemWidget_Fields = BetItemWidget_Fields();
//
BetBottomSheet _betBottomSheet = BetBottomSheet();
//
final _saveBetController = Get.find<SaveBetController>();
@override
Widget build(BuildContext context) {
List? trailStringList = [
// #1
_saveBetController.displayModel.value.t1Goals == null
? null
: _saveBetController.displayModel.value.t1Goals.toString(),
// #2
_saveBetController.displayModel.value.t1YellowCards == null
? null
: _saveBetController.displayModel.value.t1YellowCards.toString(),
];
return Container(
child: ListView.builder(
itemCount: _betItemWidget_Fields.statList.length,
itemBuilder: (context, index) {
return Card(
child: ListTile(
onTap: () {
_betBottomSheet.betBottomSheetFN(
title: _betItemWidget_Fields.statList[index],
index: index,
);
},
leading: Text(
_betItemWidget_Fields.statList[index],
style: TextStyle(
fontSize: 20.0,
fontWeight: FontWeight.bold,
),
),
// Want to update trailing too
trailing: Text(
trailStringList[index] == null ? '-' : trailStringList[index],
),
),
);
},
),
);
}
}
【问题讨论】:
-
我遇到了类似的问题。你找到解决办法了吗?
-
我切换到 GetBuilder
标签: flutter dart flutter-getx