如何执行FamilyAsyncNotifier中的成员方法?
(这是对我的上一个问题的连续问题。)
我通过向 FamilyAsyncNotifier 传递参数来初始化它。但是,现在我无法执行 FamilyAsyncNotifier 中的成员方法。
当它只是AsyncNotifier时,成员方法是这样调用的。
等待 ref.read(postViewModel.notifier).fetchTargetPost(targetPostId);
但是,我无法使用 FamilyAsyncNotifier 调用它。有人知道如何调用 FamilyAsyncNotifier 中的成员方法吗?我只是想将参数传递给 AsyncNotifier,但 FamilyAsyncNotifier 似乎变得更加复杂。我真的很感谢任何人的帮助。
final postViewModel =
AsyncNotifierProvider.family<PostViewModel, Post?, String>(
() => PostViewModel(),
);
class PostViewModel extends FamilyAsyncNotifier<Post?, String> implements BasePostListInterface {
late final FetchPostUseCase _fetchPostUseCase =
ref.read(fetchPostUseCaseProvider);
@override
FutureOr<Post?> build(String targetPostDocumentId) async { // <- now I am able to initialize it with parameter
return _fetchPostUseCase(targetPostDocumentId);
}
Future<Post> fetchTargetPost(String targetPostDocumentId) async { // However, I can't execute this member method from UI.
state = const AsyncValue.loading();
Post post = Post.empty();
state = await AsyncValue.guard( () async {
post = await _fetchPostUseCase(targetPostDocumentId);
return post;
});
return post;
}
}
postViewModel.notifier
应该是postViewModel(familykey).notifier
。也就是说,由于您有一系列提供者,因此您必须确定您想要通知程序的提供者。