我正在使用Riverpod提供程序来管理Flutter中4个容器的状态,这会将容器的状态更改为不同的颜色。但是,我将来可能需要更多的容器,并且为每个容器创建一个新的提供程序听起来不太正确。有没有一种方法可以为多个容器使用单个提供程序,同时保持它们的状态独立?我的方法是为每个容器创建4个独立的提供程序,这当然可以,但我想在未来添加更多的容器,所以代码变得不必要的大。
6l7fqoea1#
您可以:1.根据需要创建尽可能多的提供程序。1.创建一个模型,它的字段数和容器数一样多,然后用一个StateProvider来管理它。然后值得看看freezed包,它将保持对象的不可变性和正确的hashCode/==。1.根据具体情况,可以通过ProviderScope(...)覆盖提供程序
StateProvider
hashCode/==
ProviderScope(...)
final containerProvider = Provider((ref) => 1); Widget build(context, ref) { return ProviderScope( overrides: [ containerProvider.overrideWithValue(2), ], child: Container(...), ), }
事实证明,每个容器都将被自己的值覆盖。
1条答案
按热度按时间6l7fqoea1#
您可以:
1.根据需要创建尽可能多的提供程序。
1.创建一个模型,它的字段数和容器数一样多,然后用一个
StateProvider
来管理它。然后值得看看freezed包,它将保持对象的不可变性和正确的hashCode/==
。1.根据具体情况,可以通过
ProviderScope(...)
覆盖提供程序事实证明,每个容器都将被自己的值覆盖。