【问题标题】:Flutter and GetX: How can i update my List<CustomClass> in my View?Flutter 和 GetX:如何在视图中更新 List<CustomClass>?
【发布时间】:2021-08-28 19:43:12
【问题描述】:

我试图显示我的 stateList (List) 并在 stateList 的内容发生更改时使用 getX 对其进行更新,但 Obx 仅适用于单个小部件?

我目前正在使用扩展运算符 (...) 来显示 stateList 中的小部件。 当我的 stateList 更改(添加、删除..)时,如何让我的 Widget 重建?

class Designer extends StatelessWidget {
  final DesignerController c = Get.put(DesignerController());

  @override
  Widget build(BuildContext context) {
    print("rebuilds");
    return Scaffold(
        body: ArrowContainer(
            child: Container(
                child: Stack(children: <Widget>[
         
          ...c.stateList,

        ]))),
        floatingActionButton:
            Row(mainAxisAlignment: MainAxisAlignment.center, children: [
          FloatingActionButton(
              child: Icon(Icons.add), onPressed: c.addNewState("C1")),
          FloatingActionButton(
              child: Icon(Icons.remove),
              onPressed: () {
                c.addNewState("C2");
                c.stringList.add("Test");
              }),
          FloatingActionButton(
              child: Icon(Icons.clear),
              onPressed: () {
                c.count.value++;
              }),
        ]));
  }
}
class DesignerController extends GetxController {
  final List<Widget> stateList = <Widget>[].obs;

  addNewState(String stateName) {
    StateModel newState = StateModel(
        key: UniqueKey(), offset: Offset(0, 0), stateName: stateName);
    stateList.add(newState);
  }

【问题讨论】:

    标签: flutter dart flutter-getx


    【解决方案1】:

    通过用 Obx 包裹整个 Stack 来解决

    Obx(
          () => Stack(children: <Widget>[
            ...c.stateList,
          ]),
    

    【讨论】:

      猜你喜欢
      • 2021-10-12
      • 2021-10-07
      • 2021-12-17
      • 2023-01-18
      • 2021-06-26
      • 2021-11-11
      • 2021-10-08
      • 2021-10-08
      • 1970-01-01
      相关资源
      最近更新 更多