[英]Flutter Riverpod call StateProvider within a class that itself is a StateProvider
我有一個由Widgets
調用的Class
,但是這個Class
需要從另一個Class
中提取數據。 基本上,我使用 Riverpod 作為依賴注入,並且不確定這是否“正確”或者我做錯了。 這是我所做的:
main.dart
var myClass1 = Class1();
final class1Provider = StateProvider((ref) => myClass1);
final class2Provider = StateProvider((ref) => Class2(myClass1));
這是推薦的方式還是我應該做其他事情?
僅供參考,這確實有效;
Widget build(BuildContext context) {
displayData = (ref.watch(class2Provider.notifier).state).getData();
謝謝
這是不正確的。 您正在使用riverpod,但將它與全局變量混合在一起,這會破壞使用狀態管理庫的全部意義。
final class1Provider = StateProvider((ref) => Class1());
ref.watch()
方法:final class2Provider = StateProvider((ref) {
final myClass1 = ref.watch(class1Provider);
return Class2(myClass1);
});
Widget build(BuildContext context) {
final displayData = ref.watch(class2Provider).getData();
}
有關更多信息,請徹底閱讀文檔https://riverpod.dev/docs/getting_started/ 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.