flutter - 使用带有 ChangeNotifier 的 Provider 对模型更改进行方法调用
问题描述
我有一个search_screen
(文本字段、搜索按钮、带有结果的列表视图)。我还有一个过滤器按钮,它显示一个带有复选框的弹出窗口。当我选中/取消选中一个复选框时,ChangeNotifier 和 Provider 会将数据searchScreenModel
放入search_screen
.
getItems()
我在搜索按钮点击后调用一个方法。我还想在每次更改后调用它searchScreenModel
(以将结果与过滤器匹配)。
怎么做?在更改 ui 时,我会使用Consumer
. 但是当涉及到方法调用时,该怎么做呢?
这就是我创建 Listview 的方式,例如:
Widget getItemWidget(BuildContext context, ApiResponse apiResponse) {
switch (apiResponse.status) {
case Status.LOADING:
return Center(child: CircularProgressIndicator());
case Status.COMPLETED:
{
GetItemResult result = apiResponse.data as GetItemResult;
return Expanded(
child: ListView.builder(
padding: EdgeInsets.all(8.0),
itemBuilder: (_, int index) =>
ListviewItem(model: result.items[index]),
itemCount: result.items.length,
),
);
}
case Status.ERROR:
return Center(
child: Text('Error'),
);
case Status.INITIAL:
default:
return Center(
child: Text(''),
);
}
}
解决方案
推荐阅读
- scheme - 使用 map 或 reduce 或 filter,在 Scheme 中,计算列表中有多少个元素
- python - Python 游标实例 - mongodb
- javascript - 当我在导航栏中加载我的组件时,材料 ui 选项卡进入无限循环(appbar>tabspanel)
- java - 如何组合动态量的 CompletionStage
- c# - 通过 linq 对实体查询进行分组,以通过加入表来获取一条具有最新时间戳的记录
- javascript - 高斯分布函数
- ios - Libtool 错误:命令 libtool 在我的 pods Xcode 项目中出现非零退出代码失败,如何解决此错误?
- javascript - 从计算的输入中存储变量 - javascript
- stata - Stata中的时间字符串范围
- r-markdown - R markdown 中的内联 R Logo 命令