我想在任何地方检查我的应用程序,无论用户是否是管理员。为此,我首先从服务器获取管理员列表,并设置一个包含
ValueNotifier<bool> admin
的全局文件,以通知我们在获取管理员列表后是否设置或更改了 admin 的值。但问题是 admin.value
setter 也可供所有文件访问以设置其值,但我想限制它,使得 admin
的值只能在网络类或网络文件或任何其他特定文件中更改,而我想尽可能地倾听它的变化。有人可以帮助我吗?
您可以将您的
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 上尝试完整示例。
好的,明白了,我可以在
ValueListenable<bool>
上创建一个 ValueNotifier<bool> admin
getter。
我认为当前的答案不起作用 是的,其他类无法将 _isAdminNotifier 更改为另一个通知程序 但他们可以使用 'isAdmin.value = xxx' 来更改值