为了访问非widget类中的提供者,我使用了Reader函数。在将Riverpod依赖项更新到^2.0.2版本后,似乎Reader函数不再可用。您有什么建议吗?我是否应该将Ref或WidgetRef作为参数传递给类构造函数?当我传递WidgetRef时,它不识别状态和方法。
wpcxdonn1#
这是江荚二号的重大改变。您应该将ref作为参数传递,并使用www.example.com(之前使用reader的地方)。ref.read where you used reader before.示例:
final userTokenProvider = StateProvider<String>((ref) => null); final repositoryProvider = Provider(Repository.new); class Repository { Repository(this.ref); final Ref ref; Future<Catalog> fetchCatalog() async { String token = ref.read(userTokenProvider); final response = await dio.get('/path', queryParameters: { 'token': token, }); return Catalog.fromJson(response.data); } }
https://riverpod.dev/docs/concepts/combining_providers/#can-i-read-a-provider-without-listening-to-it
f0brbegy2#
你也可以定义一个自定义的“读取器”,虽然这并不推荐。但是,当你想逐渐迁移到新版本的Riverpod 2.0时,这可能会很方便
typedef Reader = T Function<T>(ProviderBase<T> provider);
2条答案
按热度按时间wpcxdonn1#
这是江荚二号的重大改变。
您应该将ref作为参数传递,并使用www.example.com(之前使用reader的地方)。ref.read where you used reader before.
示例:
https://riverpod.dev/docs/concepts/combining_providers/#can-i-read-a-provider-without-listening-to-it
f0brbegy2#
你也可以定义一个自定义的“读取器”,虽然这并不推荐。但是,当你想逐渐迁移到新版本的Riverpod 2.0时,这可能会很方便