我有一个 GridView,其中包含StatefulWidgets列表,该列表显示正在上传的图像的预览以及该图像的上传进度。
列表中的每个小部件都应该有自己的状态,其中一些可以成功上传,而另一些则可能失败,因此用户只能重试那些上传失败的图像。
问题是:
Riverpod 只能创建一个实例,并且该实例在整个项目中共享。因此,如果我使用 Riverpod 跟踪每个图像的状态,则 GridView 上的所有图像将共享相同的状态,而不是每个图像都有自己的状态。
有没有一种方法可以使用相同的提供程序,而不是每次调用context.read(provider)或watch(provider.state) 时都获取相同的实例,而是得到一个新的独立且新鲜的实例?
Ale*_*ord 14
您正在寻找.family修改器。请参阅此处的文档。您可以将 id 或 key 作为参数传递给 StateProvider。
例如:
final imageProvider = StateProvider.family<ImageModel, String>((ref, id) => ...);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3866 次 |
| 最近记录: |