为什么模型无法使用提供程序访问另一个模型?

时间:2019-08-17 08:21:50

标签: flutter dart flutter-layout state-management flutter-provider

我想这样做(不可能):

class Model1 extends ChangeNotifier {
...
  final List<Item> items = [];
}


class Model2 extends ChangeNotifier {

void performOperation() {
//Access items from Model1 here
final newItems = Provider.of<Model1>(context).items,
...
}


}

似乎suggestion is use ChangeNotifierProxyProvider
但这似乎效率很低。如果尚未在UI中使用此值,为什么还要用ChangeNotifierProxyProvider创建另一个层?我只想在这里将Model1Model2混合用于业务逻辑。

感谢帮助!

1 个答案:

答案 0 :(得分:0)

一个模型无法使用提供程序访问另一个模型,因为模型不是窗口小部件,它们对提供程序和上下文一无所知。
如果您不想使用ChangeNotifierProxyProvider,则可以提取共享逻辑来分离类或方法,并在模型中重用它。