首页 > 解决方案 > 使用带有 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(''),
        );
    }
  }

标签: flutterflutter-providerflutter-change-notifier

解决方案


推荐阅读