限制 valueNotifier.value 的值变化

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

我想在任何地方检查我的应用程序,无论用户是否是管理员。为此,我首先从服务器获取管理员列表,并设置一个包含

ValueNotifier<bool> admin
的全局文件,以通知我们在获取管理员列表后是否设置或更改了 admin 的值。但问题是
admin.value
setter 也可供所有文件访问以设置其值,但我想限制它,使得
admin
的值只能在网络类或网络文件或任何其他特定文件中更改,而我想尽可能地倾听它的变化。有人可以帮助我吗?

flutter dart
3个回答
2
投票

您可以将您的

ValueNotifier
设为私有实例,这样它只能在当前类中访问和编辑,然后为其可听值创建一个公共 getter,您将能够从外部调用该值。

示例

class Network{
   // private variable only accessible inside the class
   final ValueNotifier<bool> _isAdminNotifier = ValueNotifier<bool>(false);

   // public getter accessible outside
   ValueListenable<bool> get isAdmin => _isAdminNotifier;
}

DartPad 上尝试完整示例。


0
投票

好的,明白了,我可以在

ValueListenable<bool>
上创建一个
ValueNotifier<bool> admin
getter。


0
投票

我认为当前的答案不起作用 是的,其他类无法将 _isAdminNotifier 更改为另一个通知程序 但他们可以使用 'isAdmin.value = xxx' 来更改值

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