gpt4 book ai didi

flutter - 如何使用 ChangeNotifier?

转载 作者:行者123 更新时间:2023-12-02 21:02:01 27 4
gpt4 key购买 nike

从文档中我了解到,可以在 ChangeNotifier 上调用 addListener()实例将自定义监听器添加到堆栈中。

此方法接受零参数的回调(根据 notifyListeners() ),例如:

class MyClass extends ChangeNotifier {

MyClass() {
addListener(() {
// ...
});
}
}

从回调中,如何找出 MyClass 的哪些属性或部分已更改?

最佳答案

ChangeNotifier 本质上不具备此类功能。您必须实现自己的逻辑。具体来说,您可以访问 ChangeNotifier 实现的所有属性,因为您在其作用域中添加了监听器,或者您可以访问它,因为您在您的作用域中拥有对它的引用。

ChangeNotifier只需实现 Listenable并提供一些用于管理监听器的实用程序。此外,文档对此进行了以下说明:

ChangeNotifier is optimized for small numbers (one or two) of listeners. It is O(N) for adding and removing listeners and O(N²) for dispatching notifications (where N is the number of listeners).

我不确定用于通知监听器的具有更好运行时复杂性的选项,但您不会在常规 Flutter 应用程序中遇到任何问题。

值通知程序

ValueNotifierChangeNotifier 的预制实现,当 value property 发生时,它将通知其监听器。已更改。
这对于大多数情况来说已经足够了,但由于您似乎想要创建自定义 ChangeNotifier,因此您可以使用 source code of ValueNotifier看一下示例实现(非常简单)。

<小时/>

如果您只是想进行一般状态管理,ValueNotifier 通常效果很好。然而,它们并不适用于所有场景。因此,这是一个extensive list with different state management options .
考虑到这些问题,我认为最适合您需求和最受欢迎的选项如下:

关于flutter - 如何使用 ChangeNotifier?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58312255/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com