比将回调函数传递给子窗口小部件更好的架构

问题描述 投票:0回答:1

我正在构建我的第一个Flutter应用程序,我需要刷新数据列表,每个组件都有一些修饰符。这是基本架构。

enter image description here

RefresherWidget(这是一个保存列表的StatefulWidget)内的API定期刷新一个大的数据列表(大约5000行),然后传递给孩子们。每个RowWidget都有一个Switch(以及Dialogs),它修改了它代表的数据。

目前,修改列表的方法是在RefresherWidget中,所以我将它们作为回调函数传递给每个孩子,直到达到onChangedSwitch回调。

但我不认为这是一个非常干净的解决方案,我不知道如何实现更好的解决方案:我已经尝试过将这些方法传递到InheritedWidgetRefresherWidget之间的ListViewWidget中,并使用of引用它们功能,但我不知道如果InheritedWidget得到重建我会得到的性能。

此外,Streams和BLoC似乎非常复杂,我需要做的事情。

你们通常如何解决这样的问题?

flutter widget
1个回答
2
投票

对于InheritedWidgetBuildContext来说,这绝对是一种情况。

我试过[...] InheritedWidget [...]但是我不知道如果InheritedWidget得到重建我会得到的性能。

你不必担心任何事情。 InheritedWidget就是为了这个目的而建造的。

获得InheritedWidget是非常有效的(O(1))。并且只有依赖于值的小部件才会被重建 - 这也是最佳的。

© www.soinside.com 2019 - 2024. All rights reserved.