【问题标题】:How could I update inner widget if list changes, and notify outer widget if inner widget changes?如果列表更改,我如何更新内部小部件,如果内部小部件更改,我如何通知外部小部件?
【发布时间】:2022-11-04 00:18:23
【问题描述】:

我基本上有这样的结构:

--OuterWidget
  --ListWidget
    --ListElementWidget1
    --ListElementWidget2
    ...
    --ListElementWidget3

我想做的是:每当用户选中 ListElementWidget 中的复选框时,我都希望在 OuterWidget 中收到有关该复选框的通知。此外,每当我在 OuterWidget 的列表中添加一个元素时,我都希望它反映在 ListWidget 中。 我可以做在构造函数中传递通知器的简单方法,但是有更简单的方法吗?

【问题讨论】:

  • 回调方法可能会有所帮助。您能否提供将重现相同问题的示例小部件

标签: flutter dart widget


【解决方案1】:

stateful widgets

void onPressed() {
  setState(() {
    // Here you can set values in your widget 
    // and it will update all widgets in state.
  });
}

【讨论】:

    【解决方案2】:

    欢迎来到状态管理的世界!

    最简单的方法是将回调方法沿链传递,就像您已经提到的那样。

    OuterWidget() => ListWidget(callBack) => ListElementWidget(callBack);
    

    虽然这确实解决了问题,但它可能无法很好地扩展,如果您认为这是一个问题,请查看各种 state management libraries Flutter 。

    【讨论】:

      猜你喜欢
      • 2021-08-15
      • 2020-06-23
      • 2019-11-05
      • 1970-01-01
      • 2021-07-10
      • 2022-01-27
      • 2023-02-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多