Riverpod v2无riverpod_generator下AutoDisposeFamilyAsyncNotifierProvider类型错误求助
Riverpod v2 未使用generator时FamilyProvider类型不匹配错误解决
错误信息
_TypeError (type '(() => Y0, {required String? name, required Iterable<ProviderOrFamily>? dependencies, required Iterable<ProviderOrFamily>? allTransitiveDependencies, required (() => String)? debugGetCreateSourceHash, Family<Object?>? from, Object? argument}) => AutoDisposeFamilyAsyncNotifierProviderImpl<ProjectDetailController, ProjectDetailModel, int>' is not a subtype of type '(() => ProjectDetailController, {required Set<ProviderOrFamily>? allTransitiveDependencies, Object? argument, required (() => String)? debugGetCreateSourceHash, required Iterable<ProviderOrFamily>? dependencies, Family<Object?> from, required String? name}) => AutoDisposeFamilyAsyncNotifierProviderImpl<ProjectDetailController, ProjectDetailModel, int>' of 'function result')
问题原因及解决方法
依赖版本不统一:检查
pubspec.yaml中所有Riverpod相关依赖(如flutter_riverpod、riverpod)的版本是否一致。不同版本的内部API参数类型有变化,比如allTransitiveDependencies的类型从Iterable改为Set,from参数的可空性也做了调整。把所有Riverpod相关包统一到同一稳定版本,然后执行flutter pub get更新依赖。手动实现Provider时参数签名不匹配:因为没使用
riverpod_generator,手动构建AutoDisposeFamilyAsyncNotifierProviderImpl时,参数签名和框架要求的不一致:allTransitiveDependencies需要传入Set<ProviderOrFamily>?类型,如果你之前传的是Iterable,可以通过.toSet()转换后传入;from参数是必填的非空类型Family<Object?>,不能传可空值,确保这个参数有合法的非空实例传入。
内容的提问来源于stack exchange,提问作者Masahiro Aoki
相关产品推荐
相关产品推荐

