如何解决Flutter 和 GetX:如何更新视图中的 List<CustomClass>?
我试图显示我的 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);
}
解决方法
通过用 Obx 包裹整个 Stack 解决
Obx(
() => Stack(children: <Widget>[
...c.stateList,]),
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。