【问题标题】:Obx is not working - Flutter Getx packageObx 不工作 - Flutter Getx 包
【发布时间】: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


【解决方案1】:

如何也用 Obx 包装尾随文本小部件:

trailing: Obx(() => Text(
                trailStringList[index] == null ? '-' : trailStringList[index],
              ),
)

【讨论】:

    猜你喜欢
    • 2021-03-29
    • 1970-01-01
    • 2021-11-11
    • 2022-10-17
    • 2021-12-14
    • 1970-01-01
    • 2022-01-02
    • 2021-07-11
    • 2021-11-01
    相关资源
    最近更新 更多