我正在使用提供程序来获取数据并按如下方式通知侦听器:
class CategoryProvider with ChangeNotifier {
Future<void> getData() async {
......
......
notifyListeners();
}
}
我的 CategoryListView
小部件正在侦听此提供程序,如下所示:
Widget build(BuildContext context) {
var collectionData = Provider.of<CategoryProvider>(context);
}
我按如下方式推送 CategoryListView
的新实例:
Navigator.of(context).pushNamed(CategoryListView.routeName);
我正在从 CategoryListView
小部件本身推送 CategoryListView
的新实例。
它在推送新实例时运行良好,但在返回时,所有 CategoryListView
小部件都显示最新的 CategoryListView
小部件的数据,因为它正在侦听同一个提供者。
如何创建 provider 的新实例并将其关联到小部件实例?有没有更好的方法来处理这个问题?