首页 > 解决方案 > 通知相邻小部件

问题描述

我有一个包含“保存”按钮的小部件。按下该按钮后,其他几个小部件(不仅是祖先小部件)必须将其状态保存到文件中。我不知道怎么通知他们。在颤振中实现这一目标的最佳方法是什么?我正在考虑Notification在“保存”小部件中使用,最近的共享祖先将包含一个NotificationListener触发每个小部件将订阅的事件的事件。对我来说,它看起来不像一个解决方案。

标签: flutter

解决方案


Provider 是对各种规模的应用程序进行状态管理的推荐方式。——Chris Sells——Flutter 产品经理。2019 年 6 月 19 日

一开始挺复杂的,最好看看Simple app state management

ChangeNotifier只要类中有任何更改,就会使用该函数notifyListeners

class ChangeNotifierModel extends ChangeNotifier {
  String stringThatChanges = 'startValue';

  void changeTheString(String value) {
    stringThatChanges = value;

    notifyListeners();
  }
}

唯一特定于的代码是ChangeNotifiernotifyListeners(). 每当模型以可能更改应用程序 UI 的方式发生更改时调用此方法。

我自己对 Flutter 还很陌生,但就我的理解而言,它有点像包装器,例如包装 main.dart 的子级

MultiProvider(
   providers: [
      ChangeNotifierProvider(create: (_) => SingleNotifier())
   ],
   child: MyApp(),
));

不要忘记依赖项

dependencies:
  provider: ^4.3.2+2

推荐阅读