簡體   English   中英

帶有服務和存儲庫的 Flutter/Riverpod - 如何

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM