我对Flutter有点陌生,我正在使用Riverpod。在我使用Provider传递的类中有一个可变变量可以吗?
我的供应商
final groupControllerProvider = Provider<GroupController>((ref) {
return GroupController();
});
字符串
自定义类
class GroupController {
List<Map<String, dynamic>>? myVariable;
GroupController();
Future<void> toDoWithMyVar() async {
myVariable = ...;
}
}
型
如果不好,还有什么选择?谢啦,谢啦
1条答案
按热度按时间lskq00tm1#
如果您的类只是一个服务/存储库,不涉及更新状态和重建小部件,那么明智的做法是使用
Provider
进行优雅的依赖注入。如果变量
myVariable
将是某个状态,则应基于该状态重新构建小部件,然后StateProvider
|FutureProvider
(Async)NotifierProvider
在后一种情况下,你的代码看起来像这样:
字符串
您可能还应该研究像
freezed
这样的包,它允许您方便地管理不可变对象。事实上,要使这些提供程序正常工作,您的状态必须是不可变的,并具有正确重定义的hashcode|==
。