【问题标题】:getx remove value from listgetx 从列表中删除值
【发布时间】:2021-11-09 04:45:01
【问题描述】:

我使用 GetX 作为状态管理,我在这样的控制器中声明了一个列表..

List<Chair> selectedSeats = <Chair>[].obs;

我有两种方法可以在列表中添加和删除项目。

这是我用来添加椅子的

  void addSelectedChair(Chair chair) {
    if (selectedSeats.contains(chair.chairName)) {
      return;
    } else {
      selectedSeats.add(chair);
    }
    update();
    print(chair.chairName);
  }

我用它来从列表中删除椅子..

final controller = Get.put(SeatController());


// this is how i call this method
//controller.removeSelectedChair(this.widget.customList[index].chairName);
//like controller.removeSelectedChair("C2");

  void removeSelectedChair(String chair) {
    selectedSeats.removeWhere(((item)=>item.chairName == chair));
    print(chair);
    update();
  }

但我无法让删除工作... 为什么不从 selectedSeats 列表中删除椅子..

这里是椅子模型,如果有用的话..

enum ReserveState { available, reserved, selected }

class Chair {
  ReserveState reserveState;
  int rowNum;
  int cNum;
  String chairName = '';

  Chair(this.rowNum, this.cNum,this.reserveState,this.chairName);

}

【问题讨论】:

    标签: flutter dart state-management flutter-getx


    【解决方案1】:

    试试这个:

    selectedSeats.value.removeWhere(((item)=>item.chairName == chair));
    

    另外,不必每次都使用更新,您可以使用 refresh 方法重新渲染依赖于您的数组的部分,如下所示:

    selectedSeats.refresh()
    

    但如果您直接更改内部值,请执行此操作

    【讨论】:

      猜你喜欢
      • 2017-10-12
      • 1970-01-01
      • 2022-09-29
      • 2013-04-12
      • 2016-02-17
      • 2012-05-19
      • 2022-01-22
      • 1970-01-01
      • 2015-01-23
      相关资源
      最近更新 更多