[英]Flutter + Riverpod: Calling a function in a stateful widget?
[英]Flutter Riverpod: How to create different instances of the same provider for each Stateful widget on a GridView
我有一个 GridView ,其中包含一个StatefulWidgets列表,其中显示了正在上传的图像的预览以及该图像的上传进度。
列表中的每个小部件都应该有自己的 state ,其中一些可以成功上传,其他可能会失败,因此用户只能重试那些未能上传的图像。
问题是:
Riverpod 只能创建一个实例,并且该实例在整个项目中共享。 So, if I use Riverpod to track the state of each image, all images on the GridView will share the same state instead of each one have its own state.
有没有办法使用相同的提供程序,但不是每次我调用context.read(provider)或watch(provider.state)时都得到相同的实例,而是得到一个新的独立和新鲜的实例?
您正在寻找.family
修饰符。 请参阅此处的文档。 您可以将 id 或密钥作为参数传递给您的 StateProvider。
例如:
final imageProvider = StateProvider.family<ImageModel, String>((ref, id) => ...);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.