【问题标题】:Why model cannot access another model using provider?为什么模型不能使用提供者访问另一个模型?
【发布时间】:2019-12-23 08:43:43
【问题描述】:

我想这样做(不可能):

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 的业务逻辑。

感谢您的帮助!

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 这是provider可以添加的功能吗?
    • 不,这与提供者无关。 Provider 是连接小部件和数据的一种方式,但不是业务逻辑组织
    • 感谢您的回复!如何更好地组织业务逻辑?
    猜你喜欢
    • 2011-12-24
    • 2019-11-09
    • 1970-01-01
    • 2010-09-29
    • 1970-01-01
    • 1970-01-01
    • 2018-09-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多