[英]Flutter/Riverpod with service and respository - how to
我正在構建我的第一個基於 RiverPod 的 Flutter 應用程序,我正在嘗試了解 RiverPod 如何與服務和存儲庫模式一起工作。
我有一個存儲庫 class,它負責處理與特定存儲 API 的交互,在這種情況下,根據用戶配置,它可以是 FireStore 或 Hive。
有一個單獨的服務 class 作為持久化數據的邏輯層,比如......
final goalRepositoryProvider = Provider<FsGoalRepository>((ref)=> FsGoalRepository());
class GdGoalService {
Future<GdGoal> add(GdGoal aNewGoal) async {
return ref.watch(goalRepositoryProvider).add(aNewGoal);
}
...
}
問題是,我找不到將“ref”值設置到服務 class 中的方法。本質上,我正在嘗試使用 RiverPod 將存儲庫 class 依賴注入到服務中。
將“ref”作為參數傳遞給服務是一種合法的方法嗎?
final goalServiceProvider = Provider<GdGoalService >((ref) {
return GdGoalService (ref);
});
建議?
是的,將 ref 從其提供程序包裝器傳遞到您的服務代碼中是合法的。 提供者將從彼此獲取引用,並最終從消費者小部件的 ref.watch 或 ref.read 獲取引用,這些小部件將它們與 ProviderScope 連接在一起,所有數據基本上都“存在”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.