【发布时间】:2019-08-23 00:52:45
【问题描述】:
如何正确使用ChangeNotifier和SearchDelegate?
我有一些看起来像这样的东西:
class SearchNotifier with ChangeNotifier {
List<String> results;
Future<void> search(String query) async {
results = await API.search(query);
notifyListeners();
}
}
在我的SearchDelegate:
Widget buildSuggestions(BuildContext context) {
final searchNotifier = Provider.of<SearchNotifier>(context);
searchNotifier.search(query);
...
}
当结果更新时,SearchNotifier 更新其侦听器,SearchDelegate 被重建,buildSuggestions 被调用,search 被再次调用,进入一个循环。
有没有办法在构建方法之外做searchNotifier.search(query)?也许我可以以某种方式向SearchDelegate_queryTextController 添加一个侦听器?
我正在使用提供者来注入我的SearchNotifier,所以无论在哪里调用search,我们都需要访问上下文。
【问题讨论】:
标签: flutter